let rec ints = function n -> Link (n+1, ints)
let rec ints2 n = Link (n+1 ,ints)
これらのうちどれがより良いスタイルで、その理由は?
短いので2枚目。最初のものは pattern の省略形でありmatch
、何も購入しません。
もう少し詳しく説明すると、最初のものは次と同等です
let rec ints n =
match n with
| n -> Link (n+1, ints)
n
パラメータをシャドウ変数にバインドしているだけなので、非生産的ですn
。
スティーブンが言ったように、最初のものは非効率的です。
本当に必要な場合は、次のfun
キーワードを使用できます。
let rec ints3 = fun n -> Link (n+1, ints)
ints2とints3は、内部表現ではほとんど同じです。この構文はints2よりも長く、利点がまったくないため、常にこの構文を使用しても意味がありません。
明確にするために:
一般的にはキーワードを使用する必要がありますfun
が、より適切なシナリオでは使用します。