とりあえず scala 始めました。 fizzbuzz
scala始めたので、とりあえず fizzbuzz からやってみた。
なんか非常に、どうなんこれ? という気分になるコードだけど、
初めて作ったし、いいんだ。
// -*- Coding: utf-8-unix -*- object FizzBuzz { def fizzbuzz( num:Int ):String = { val fizz: Int => String = { n => if( n % 3 == 0 ) "fizz" else "" } val buzz: Int => String = { n => if( n % 5 == 0 ) "buzz" else "" } val number: ( Int, String ) => String = { ( n, s ) => if( s.isEmpty ) n.toString else s } number( num, fizz( num ) + buzz( num ) ) } def main( args:Array[String] ):Unit = { for( i <- 1 to 31 ) println( fizzbuzz( i ) ) } }
ちなみに、色々と見て回ってる過程で、「マジで!?」と思ったコードが
Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ゆろよろ日記
にありまして、データは規則に沿って加工するのがPCが得意なことだし
数列を処理するって時点で思いつかなかったのは、ちょっとマズイなぁと思った次第。
もう、覚えたから大丈夫だけどね!
楽しい、めっちゃ楽しい・・・