私は初心者です。以下のコードを書きます。
Delay(e) == fn () => e
Force(e) == e()
fun time_consuming(n) =
let fun tak(x, y, z) = if x <= y then y
else tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y))
in
fun tak(3*n, 2*n, n)
funend;
fun fib(n) = if n=0 orelse n=1 then 1 else fib(n-1) + fib(n-2);
fun odd(n) = (n mod 2) = 1;
fun f(x, y) = if odd(x) then 1 else fib(y);
f(fib(9), time_consuming(9));
fun lazy_f(x, y) = if odd(x) then 1 else fib(y());
lazy_f(fib(9), fn () => (time_consuming(9)));
遅延評価コードです。
しかし、いくつかのエラーがあります。
lazy.sml:1.13エラー:構文エラー:LPARENの挿入
lazy.sml:4.2エラー:構文エラー:LETの挿入
lazy.sml:12.44エラー:構文エラー:SEMICOLONのEQUALOPへの置き換え
lazy.sml:15.21エラー:構文エラー:LPARENの挿入
lazy.sml:17.1エラー:EOFで構文エラーが見つかりました
これらのエラーはどういう意味ですか?