部分関数って離散数学とかの集合論をやると理解しやすいよなぁと。
ScalaのPartialFunctionを使って。
object FizzBuzz { val PFizz:PartialFunction[Int,String] = { case n if n%3==0 => "Fizz" } val PBuzz:PartialFunction[Int,String] = { case n if n%5==0 => "Buzz" } val PFizzBuzz:PartialFunction[Int,String] = { case n if n%15==0 => "FizzBuzz" } val PInt:PartialFunction[Int,String] = {case n => n.toString} val FizzBuzz = PFizzBuzz orElse PBuzz orElse PFizz orElse PInt def main(arg:Array[String]) = { println((1 to 30).toList.map(FizzBuzz(_))) } }
Scalaはコップ本よりもこっちのほうが好みかな