我想编写一个只从列表中提取奇数的函数.就像是:
fun odd(nil) = nil
| odd(a::nil) = a
| odd(a::(b::c)) = a::odd(c);
Run Code Online (Sandbox Code Playgroud)
但它会导致此错误:
运算符和操作数不同意[循环]
在你的第二种情况下,odd(a::nil) = a你返回a,这是一个单一的元素.在另外两种情况下,您返回一个列表.如果您将其更改为odd(a::nil) = [a],所以所有情况都返回一个列表,它可以工作.