【发布时间】:2021-11-15 14:01:00
【问题描述】:
这是我的功能:
fun inclist [] 0 = []
| inclist (l, inc) = map (fn x => x + inc) l;
l 是一个整数列表,我正在尝试将inc 添加到l 中的每个整数。
但我遇到了这些错误
Function: inclist : int list * int -> int list
Argument: [1, 2, 3, 4, 5] : int list
Reason: Can't unify int list to int list * int (Incompatible types)
Function: inclist [1, 2, 3, 4, ...] : int list
Argument: 1 : int
Reason: Value being applied does not have a function type
我不明白为什么,因为我有一个几乎相同的函数,可以将值相乘,效果很好。
【问题讨论】:
-
那应该在你开始应用这个函数之前就给你错误了。我的 poly 说“错误:这个子句有 1 个参数,但前面的子句有 2 个”。如果我创建第一个子句
inclist ([], 0),我可以重现您的错误。复制粘贴的时候有没有搞错? -
@Grav,已经一个星期了,您收到了多个很好的答案。接受您认为回答您的问题的任何答案是一种很好的形式。