Matrix
和构造函数都有Vector
kind *->*
,所以它们看起来像值构造函数。但是当我尝试类似的东西时
instance Functor Vector a where
fmap g ( Vector a ) = Vector ( g a )
我收到此错误:
Not in scope: data constructor `Vector'
这是有道理的,因为let v = Vector [1..3]
无论如何我都无法通过使用来制作矢量。但是检查源代码我发现 Matrix 和 Vector 构造函数都是从它们各自的模块中导出的:
Vector.hs
module Data.Packed.Vector (
Vector,
fromList, (|>), toList, buildVecto..
) where
Matrix.hs
module Data.Packed.Matrix (
Element,
Matrix,rows,cols...
) where
Dido 用于应用函子、monad 等。