Drkcore

16 09 2011 Scala Tweet

部分関数でFizzBuzz

部分関数って離散数学とかの集合論をやると理解しやすいよなぁと。

ProductName 離散数学への招待〈上〉
J. マトウシェク
シュプリンガー・フェアラーク東京 / 2835円 ( 2002-12 )


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はコップ本よりもこっちのほうが好みかな

ProductName Scalaプログラミング入門
デイビッド・ポラック
日経BP社 / 3360円 ( 2010-03-18 )


About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021