プログラミング言語 Scala 6冊目
■ このスレッドは過去ログ倉庫に格納されています
0804[1] ◆CgacaMDhSQ
2011/08/21(日) 23:48:27.19ランク2多相をどうエンコードするかという問題(Scalaはランク2多相の言語レベルサポートが無いので)ですよね。
とりあえず、解いて見ました。
まず、加算だけできる型クラスがScalaには標準で無いので定義してやります(Numericは必要なメソッドが多過ぎるので×)
scala> trait AddT[X] { def plus(a: X, b: X): X }
defined trait AddT
型クラスのインスタンスも作ってあげます。
scala> implicit object IntAdd extends AddT[Int] { def plus(a: Int, b: Int) = a + b }
defined module IntAdd
scala> implicit object StringAdd extends AddT[String] { def plus(a: String, b: String) = a + b }
defined module StringAdd
■ このスレッドは過去ログ倉庫に格納されています