201607.md #多相な関数の定義から学ぶ、型クラスデザインパターン twitter: @OE_uia github: taisukeoe ##多相な関数 複数の異なる型に対して適用可能な関数 どの型に対して定義されているか、静的に決定できる(定義されてない型の値を渡すとコンパイルエラーになる) Int => Int String => String Double => String Seq[Int] => Seq[Int] ##多相な関数のメリット 複数の異なる型に対する操作を一般化したまま変換,合成などを行える DSLの構築 Heterogeneousなコレクションを簡便に操作できる #一番単純な出発点としての、メソッドの引数オーバーロード def overlap(i:Int):Int = i*i def overlap(s:String):String = s.foldLeft(