IokeでFizzBuzzその2
IokeでFizzBuzz - paz3のおもいつき の続き。
まだやってんのか!
ええ、やってますw
fizzbuzz.ik:
Number Integer fizzbuzz = method( fn(str, if(str empty?, self, str)) call( if(self % 3 == 0, "Fizz", "") + if(self % 5 == 0, "Buzz", "")) ) (1..50) map(n, n fizzbuzz) println
実行結果:
[1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, FizzBuzz, 31, 2, Fizz, 34, Buzz, Fizz, 37, 38, Fizz, Buzz, 41, Fizz, 43, 44, FizzBuzz, 46, 47, Fizz, 49, Buzz]
今回のポイント。
- Integerにfizzbuzzメソッドを持たせた(katzchangさんの方法 を見習いました)。
- “fn”(lexical block)を使ってみた。ちょっとlambda風味。
- Integerにfizzbuzzメッセージを渡すと、Fizz, Buzz, 値自身のどれかが返ってくる。
知れば知るほど Ioke は素晴らしいです。自分のデフォルト言語になる予感。こいつをJavaScriptの代わりにブラウザで使いたい。C#の代わりにVisual Studioで使いたい。激しく使いたい!