SML[圆度]误差

SML[圆度]误差,sml,Sml,我想写一个函数,只从列表中提取奇数。比如: fun odd(nil) = nil | odd(a::nil) = a | odd(a::(b::c)) = a::odd(c); 但它导致了这一错误: 运算符和操作数不一致[循环性] 在第二种情况下,odd(a::nil)=a返回a,它是一个元素。在另外两种情况下,返回一个列表。如果您将其更改为奇数(a::nil)=[a],那么所有案例都会返回一个列表,它会工作。是的,您是正确的。非常感谢。马可

我想写一个函数,只从列表中提取奇数。比如:

fun odd(nil) = nil
  | odd(a::nil) = a
  | odd(a::(b::c)) = a::odd(c);
但它导致了这一错误:

运算符和操作数不一致[循环性]


在第二种情况下,
odd(a::nil)=a
返回
a
,它是一个元素。在另外两种情况下,返回一个列表。如果您将其更改为奇数(a::nil)=[a],那么所有案例都会返回一个列表,它会工作。

是的,您是正确的。非常感谢。马可