署名が次のようになるように、MLで多形関数を記述する必要があります。
sig4 = fn : ('a -> 'b -> 'c -> 'a) * ('a -> 'b) -> 'a -> 'c -> 'b -> 'c -> 'a
私の現在のバージョンは次のとおりです。
fun sig4 (f, g) a c b =
if 1 > 2 then g(f(a) b c)
else if 2 > 2 then f(a) b
else g(a);
そしてそれは生成します:
sig4 = fn : ('a -> 'b -> 'c -> 'a) * ('a -> 'c -> 'a) -> 'a -> 'c -> 'b -> 'c - > 'a
前もって感謝します。