こいばな - riskriskと時々鼻メガネ -

正式名称は「どすこい!鼻メガネ会長のいつでも土俵際!」です。ソフトウェア開発に関することを書いています。

とりあえず 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が得意なことだし
数列を処理するって時点で思いつかなかったのは、ちょっとマズイなぁと思った次第。

もう、覚えたから大丈夫だけどね!

楽しい、めっちゃ楽しい・・・