我已經明白瞭如何在我自己的例子類來創建一個仿函數時,它的參數是同一類型A.我可以在MyCaseClass [A,B]上創建Functor嗎?
case class MyCaseClass[A](a: A, b: A)
val local = MyCaseClass[String]("One", "Two")
implicit val myCaseClassFunctor = new Functor[MyCaseClass]{
def map[A, B](fa: MyCaseClass[A])(f: A => B) = MyCaseClass(f(fa.a), f(fa.b))
}
val F = Functor[MyCaseClass]
val res = F.map(local)(_ + ".")
println(res)
在現實生活中的問題,一類情況是不會通過參數來形成的相同類型但不同的。
如果案件CLASE獲取要爲
case class MyCaseClass[A, B](a: A, b: B)
這樣簡單的事情是否有可能建立一個仿函數呢?
我的猜測是,我不能從此地圖的定義與repect其類型相當明確的參數
def map[A, B]
但我要問過,因爲這是我第一次編程函子。