2012-10-19 42 views
3

我看看20 Intermediate Scala Exercises,並且在練習4時遇到了一些困難。不幸的是,我找不到任何貼在任何地方的解決方案,我想知道它是否可以解決。陣列函子練習

Fluffy顯然是變相的Functorfurryfmap

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中忽略涉及數組的練習的唯一選擇,還是有其他方法可以忽略?

+1

使用scala.collection.mutable.ArraySeq,而不是解決的。 –

回答

2

根據this它不是在Scala 2.8