来週には中間試験があり、クラスで提供された sml ノートを調べていました。カリー化の例に出くわしましたが、それがどのように機能するか正確にはわかりませんでした。
数の累乗を計算する単純な関数です。関数定義は次のとおりです。
fun pow 0 n = 1 | pow k n = n*pow(k-1)n
次の引数を渡すと、この関数がどのように機能するかわかりません。
val x = pow 2 2
これは私がそれを見る方法です:
=2*pow(1)2
=2*(2*pow(0)2)2
=2*(2*(1)2)2)
得られるはずの結果は 4 ですが、上記で実行した手順からこの結果が得られる方法がわかりません。
助けてください。ありがとうございました。