3
20 Intermediate Scala Exercises을보고 있고 운동 4에 어려움을 겪고 있습니다. 불행히도 어디서나 게시 된 솔루션을 찾을 수 없으며 실제로 해결할 수 있는지 궁금합니다.Array functor exercise
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
일 이전에 배열과 관련된 연습을 무시하는 것이 스칼라 2.9의 유일한 옵션입니까, 아니면 제가 간과하고있는 다른 방법이 있습니까?
사용 scala.collection.mutable.ArraySeq 이후 풀 수 없습니다. –