2012-10-19 6 views
3

20 Intermediate Scala Exercises을보고 있고 운동 4에 어려움을 겪고 있습니다. 불행히도 어디서나 게시 된 솔루션을 찾을 수 없으며 실제로 해결할 수 있는지 궁금합니다.Array functor exercise

Fluffy은 분명히 얇은 위장 Functor이고 furryfmap입니다.

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 일 이전에 배열과 관련된 연습을 무시하는 것이 스칼라 2.9의 유일한 옵션입니까, 아니면 제가 간과하고있는 다른 방법이 있습니까?

+1

사용 scala.collection.mutable.ArraySeq 이후 풀 수 없습니다. –

답변

2

this에 따르면 대신 스칼라 2.8