【发布时间】:2011-01-09 03:40:13
【问题描述】:
我想编写一个仅从列表中提取奇数的函数。比如:
fun odd(nil) = nil
| odd(a::nil) = a
| odd(a::(b::c)) = a::odd(c);
但是会导致这个错误:
运算符和操作数不一致[循环性]
【问题讨论】:
标签: sml
我想编写一个仅从列表中提取奇数的函数。比如:
fun odd(nil) = nil
| odd(a::nil) = a
| odd(a::(b::c)) = a::odd(c);
但是会导致这个错误:
运算符和操作数不一致[循环性]
【问题讨论】:
标签: sml
在您的第二种情况下odd(a::nil) = a 您返回a,这是一个单一元素。在其他两种情况下,您返回一个列表。如果你把它改成odd(a::nil) = [a],那么所有的case都返回一个列表,就可以了。
【讨论】: