Journal InTime


2007-06-27 (Wed)

_ [Ruby] ->

みんな忘れてるかもしれないけど、trunkにはまだ->が残ってるんだよ。

このまま行くと、今年のクリスマスには以下のようなコードが普通に書けるようになるわけだ。

Y = ->(f) {
  ->(x) {
    f[->(arg) { x[x][arg] }]
  }[
    ->(x) {
      f[->(arg) { x[x][arg] }]
    }
  ]
}
fact = Y[
  ->(f) {
    ->(n) {
      if n.zero? then 1 else n * f[n - 1] end
    }
  }
]
p fact[5]

思ったほど悪くないけど、Rubyには見えないな。 そのうち慣れる…のか?

本日のツッコミ(全2件) [ツッコミを入れる]
_ ささだ (2007-06-28 (Thu) 02:23)

忘れないでちゃんと実装したよ! もうオプショナル引数もpostarg もきっちり実装したよ!

_ shugo (2007-06-29 (Fri) 02:41)

記法は->でいいの?