2012年5月23日水曜日

初めてGroovyでコード書いた(∩´∀`)∩ワーイBuzzBuzz

週末に「プログラミングGROOVY」を読んでGROOVYに入門したのだ。
で、
に書いてあるコードが読めるようになったのだ。なので勉強がてら
の「無限の構造」のところをコピペしてきてグニグニしてみた。
こうしたら動くのかな・・・動かない(´・ω・`)
とか遊び倒したコードの残骸。
class LazyList {
def car
private Closure cdr
def LazyList next() { cdr() }
def List take(n) {
def r = []; def l = this
(1..n).each{ r << l.car; l++ }
return r
}
def LazyList filter(Closure pred) {
return pred(car) ? new LazyList(car:car, cdr:{ next().filter(pred) }): next().filter(pred)
}
}
def integers(n) { new LazyList(car:n, cdr:{ integers(n+1) }) }
def fizzBuzz = {it%15?it%3?it%5?it:'Buzz':'Fizz':'FizzBuzz'}
assert [5,10,20,25,35,40,50,55,65,70] == integers(1).filter{ fizzBuzz(it) == 'Buzz' }.take(10)


遅延面白いね。なんか、Blogger使いづらいなぁ・・・。

0 件のコメント:

コメントを投稿