缺少附带的绑定-这是什么意思?它是如何工作的?
-
12-12-2019 - |
题
我在利亚练习。
电话簿。hs文件包含以下代码:
电话簿 ::[(字符串,字符串)]
在尝试编译上述代码时,我得到以下错误:
*主>:加载"/home/optimight/电话簿。hs" [1的1]编译主(/home/optimight/电话簿。hs,解释)
/home/optimight/电话簿。hs:1:1:"电话簿"的类型签名缺少附带的绑定 失败,模块加载:没有。
在布拉诺的回答和随后对这个答案的评论之后添加的问题:我们如何为上述类型签名提供实现?
如果我加上这个 :
类型电话簿=[(字符串,字符串)]
我得到以下错误:
前奏>:加载"/home/optimight/电话簿。hs" [1的1]编译主(/home/optimight/电话簿。hs,解释)
/home/optimight/电话簿。hs:2:6:类型或类声明的格式错误的头部:电话簿 失败,模块加载:无
解决方案
您需要为电话簿提供实现。
phoneBook :: [(String, String)]
只是签名。
其他提示
如果要声明一个类型,它必须具有初始大写,即 type PhoneBook = [(String, String)]
.
如果你想声明一个函数,那么你需要提供它的定义(绑定)或者它的定义和它的类型签名。编译代码的最小努力是:
phoneBook :: [(String, String)]
phoneBook = undefined
然后你可以更换 undefined
具有任何类型的值 [(String, String)]
例如 [("Person","Number")]
.
不隶属于 StackOverflow