Haskell中的静态大小的向量显示在Oleg Kiselyov的Number-parameterized类型中,也可以在Hackage上Data.Param.FSVec
的参数化数据模块的类型中找到:
data Nat s => FSVec s a
Run Code Online (Sandbox Code Playgroud)
FSVec
不是Monad
类型类的实例.
列表的monad实例可用于删除或复制元素:
Prelude> [1,2,3] >>= \i -> case i of 1 -> [1,1]; 2 -> []; _ -> [i]
[1,1,3]
Run Code Online (Sandbox Code Playgroud)
无论是否与列表版本相似,是否可以从固定长度向量构造monad?