チャー研
「謎のプログラマ」的な。
☆「泉君、たなびたいことがあるんだ、ちょっと。」
☆「一度でいいから、君のプログラムを。」
研「どうして君が?」
☆「あこがれているんだ。関数型言語に。」
☆「さぁ、早くプログラムを見せてくれ。」
☆「一回きり見せてくれれば、それで僕は満足するんだ。」
☆「お願いだから、ねね、いいだろう?」
☆「僕絶対喋らないよ。だから、ね、見せてくれるかい?」
研「うん、一回きりだからね。」
var i = 1 while (i <= 20) { if (i % 15 == 0) { println("FizzBuzz") } else if (i % 3 == 0) { println("Fizz") } else if (i % 5 == 0) { println("Buzz") } else { println(i) } i = i + 1 }
☆「馬鹿にしないでくれ。君のはもっとかっくがいいやつだ。」
研「☆君、関数型は見せ物でもないし、そんなむやみに使うことは許されないんDA」(キリッ
(中略)
研「お望みとあらば見せてやろう!」
1 to 20 map(x => (x % 3, x % 5) match { case (0, 0) => "FizzBuzz" case (0, _) => "Fizz" case (_, 0) => "Buzz" case _ => x toString }) foreach println
参考:
alan dipert - FizzBuzz in Scala
- 追記
無限リスト版。
val fizzbuzz = Stream from 1 map(x => (x % 3, x % 5) match { case (0, 0) => "FizzBuzz" case (0, _) => "Fizz" case (_, 0) => "Buzz" case _ => x toString }) fizzbuzz take 20 foreach println