【发布时间】:2011-03-28 08:33:52
【问题描述】:
我正在编写一个使用 Data.Vector 的 Haskell 库。我成功编写了库函数,但我不知道如何为其添加签名。下面是一个说明问题的简单示例:
此代码导致以下编译错误:
无法推断(V.Vector v (a, a)) 从上下文 (V.Vector v a, Fractional a) 由在 MyLib.hs:7:12-20 使用“V.zip”引起 可能的修复: 将 (V.Vector v (a, a)) 添加到 `test' 的类型签名 或为 (V.Vector v (a, a)) 添加实例声明 在 `(V.!)' 的第一个参数中,即 `(V.zip a b)' 在表达式中: (V.zip a b) V.! 0 在 `test' 的定义中: test a b = (V.zip a b) V.! 0如果我注释掉test 函数的签名,代码就会被编译。这里的正确签名是什么?
我使用的是 GHC 6.12.3,向量库 0.7.0.1。
谢谢。
【问题讨论】: