私は20 Intermediate Scala Exercisesを見ていますが、演習 4 に問題があります。
Fluffy
明らかに薄仮装Functor
でfurry
あるfmap
。
trait Fluffy[F[_]] {
def furry[A, B](f: A => B, fa: F[A]): F[B]
}
object Fluffy {
// Exercise 1
// Relative Difficulty: 1
def ListFluffy: Fluffy[List] = new Fluffy[List] {
def furry[A, B](f: A => B, fa: List[A]): List[B] = fa map f
// am assuming this is the right idea...
}
// Exercise 4
// Relative Difficulty: 1
def ArrayFluffy: Fluffy[Array] = new Fluffy[Array] {
def furry[A, B](f: A => B, fa: Array[A]): Array[B] = ???
}
問題はArray[B]
、コンテキストをバインドせずに を作成できないことですが、追加すると、特性B: ClassManifest
との契約が破られます。Fluffy
これらの質問は 2008 年のものであるため、おそらく .NET の時代の前に、Manifest
Scala 2.9 で配列を含む演習を無視する唯一のオプションですか、それとも私が見落としている他の方法がありますか?