ES2015 が登場して以降どうしても出番が減ってきている…という以前からそもそもマイナー感がある
LiveScript です。
自分も最近あまり書いていませんでしたのでなんだかちょっと新鮮です。
まずはシンプルに書いてみます。
is-multiple-of = (n, m) -> n % m is 0
fizzbuzz = ->
| it `is-multiple-of` 15 => \FizzBuzz
| it `is-multiple-of` 3 => \Fizz
| it `is-multiple-of` 5 => \Buzz
| _ => it + ''
[1 to 100]
|> map fizzbuzz
|> each console~log
次は ES6でFizzBuzz のやり方を参考してやってみます。
bind = (f, g) -> (n) -> f(n) ? g(n)
is-multiple-of = (n, m) -> n % m is 0
fizzbuzz = -> if it `is-multiple-of` 15 => \FizzBuzz
fizz = -> if it `is-multiple-of` 3 => \Fizz
buzz = -> if it `is-multiple-of` 5 => \Buzz
num = (+ '')
[1 to 100]
|> map (fold1 bind, [fizzbuzz, fizz, buzz, num])
|> each console~log
最後はちょっと長いけど今の自分に思いつく範囲でワンライナー。
[1 to 100]|>map((n)->(find (->it.0 n),[[(%15)>>(is 0),\Fizzbuzz] [(%3)>>(is 0),\Fizz] [(%5)>>(is 0),\Buzz]])?1 or n+'')|>each console~log
以上です。
FizzBuzz もたまに書くと楽しいですね。