2011-01-08 8 views
4

リストから奇数だけを抽出する関数を作成したいと思います。ような何か:SML [circularity]エラー

fun odd(nil) = nil 
    | odd(a::nil) = a 
    | odd(a::(b::c)) = a::odd(c); 

しかし、それは、このエラーの原因:あなたの第2のケースで

operator and operand don't agree [circularity]

答えて

7

odd(a::nil) = aあなたは、単一の要素であるaを返します。他の2つのケースでは、リストを返します。 odd(a::nil) = [a]に変更すると、すべてのケースでリストが返されます。

+0

はいあなたはrigthです。ありがとうございました。マルコ – marco