我想写一个只从列表中提取奇数的函数。类似的东西:
fun odd(nil) = nil
| odd(a::nil) = a
| odd(a::(b::c)) = a::odd(c);
但它会导致此错误:
运算符和操作数不同意[循环]
答案 0 :(得分:7)
在第二种情况odd(a::nil) = a
中,您返回a
,这是一个单独的元素。在另外两种情况下,您返回一个列表。如果您将其更改为odd(a::nil) = [a]
,那么所有情况都会返回一个列表,它会起作用。