为什么Scalaz中没有Array的Functor实例

Mic*_*ael 4 arrays scala functor scalaz

它看起来像scalaz提供了一个Functor实例,List但没有为Array(或Seq)提供它.

scala> val fa = Functor[Array]
<console>:17: error: could not find implicit value for parameter F: scalaz.Functor[Array]
       val fa = Functor[Array]
                       ^
scala> val fl = Functor[List]
fl: scalaz.Functor[List] = scalaz.std.ListInstances$$anon$1@20c4b59

scala> val fl = Functor[Seq]
<console>:17: error: could not find implicit value for parameter F: scalaz.Functor[Seq]
       val fl = Functor[Seq]
                       ^
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?他们不是算子吗?

whe*_*ies 6

Scalaz要求对象遵循Functors 的定律.它还规定了代码构造的"一切不可变"的哲学.也就是说,它Array是可变的,所以他们不会Functor为它创建一个实例.Seq另一方面,它是一个抽象接口,不知道"正确"的数据类型是什么.也就是说,Seq如何知道要返回哪个底层对象,因此不违反任何法律?