3
我看看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] = ???
}
的問題是,我不能沒有約束B: ClassManifest
上下文創建Array[B]
,但如果我加一個它打破與Fluffy
特質的合同。
由於這些問題是從2008年開始的,在Manifest
的日子之前,是否是Scala 2.9中忽略涉及數組的練習的唯一選擇,還是有其他方法可以忽略?
使用scala.collection.mutable.ArraySeq,而不是解決的。 –