2017-10-14 15 views
1

ML言語で言語ML機能valを」*」* int型 - > BOOL

と仮定f(x,y,z)機能です。 fの引数の型がa’ * a’ * intであるfの定義の例を挙げてください。

サンプルコード私はa’ * a’ * int -> boolにこのヴァルをどのように変化するか

fun f1 (x,y,z) = z<5 ; 

val f1 = fn : 'a * 'b * int -> bool 

+2

あなたの宿題に関する質問はすべてStackOverflowに投稿していますか? –

答えて

1

タイプ:

a’ * a’ * int -> bool 

関数が最初「型、また第二」int型の種類と第三のものである3つの引数を取ることを意味します。

あなたの定義は:それはタプルがかかるため

fun f1 (x,y,z) = z<5 ; 

は今、xの種類を制限するために、yはあなたが書くことができ等しくなるように、正しい方法である:

fun f1 (x :'a ,y :'a ,z) = z<5 ; 
1

明示的な型の注釈を避けたい場合は、xyを同じ型にする最も簡単な方法は、両方の関数を関数から返すことですが、状況は異なります。
実世界の例:

- fun f (x,y,z) = if z < 0 then x else y; 
val f = fn : 'a * 'a * int -> 'a 

bool結果の型が問題の説明で言及されていないので、私はそれはちょうどあなたがz < 5と元の問題の一部ではない戻っての結果だと仮定しています。)

関連する問題