3

我正在查看20 个中级 Scala 练习,并且在练习 4 中遇到了一些困难。不幸的是,我在任何地方都找不到任何解决方案,我想知道它是否真的可以解决。

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] = ???
  }

问题是我无法在Array[B]没有上下文绑定的情况下创建一个B: ClassManifest,但如果我添加一个它会破坏与Fluffy特征的合同。

由于这些问题是从 2008 年开始的,大概Manifest

4

1 回答 1

2

据此,自scala 2.8以来它无法解决

于 2012-10-19T06:10:37.480 回答