基本的な初心者の質問:
遅延評価する必要があるデータがあります。これを行う最も一般的な方法は、thunk
s;を作成することです。私が慣れている方法は次のようなものです:
fun someFunc () =
let
fun myThunk () = 2 + 2
in
(* body *)
end
しかし、Standard ML のすべてのガイドでは、次のように行われていると教えてくれます。
fun someFunc () =
let
val myThunk = fn () => 2 + 2
in
(* body *)
end
だから私の質問は:それは本当に重要ですか?とにかく出力は同じではありませんか?関数を作成することと、ラムダを値にバインドすることの違いは何ですか?