2012-05-14 24 views

答えて

7

let x x = ...と書くと、xという名前の関数が定義されています。この関数は、その引数にxという名前をバインドします。

あなたがlet代わりのlet recを使用しているので、機能は独自の名前を知らないので、限り、それは知っている、知っておく価値があるだけxは、引数として渡されたものです。あなたはx 2で関数を呼び出すとき

したがって、それは名前xに値2を結合し、結果として3なって、x+1を評価します。

+0

ありがとう、私は関数と引数が同じ名前を持つ可能性があることを知らなかった。 – bbaja42

+1

これは可能ですが、実際にはこれを本当のコードで行うことは決してありません:)(実際これは 'let 'の代わりに' let rec'で動作し、さらに混乱する可能性があります。 。) –

+4

'let xx = e'が' let x =(fun x - > e) 'の省略形にすぎないことが分かったとき、なぜこれが可能なのか分かりやすいでしょう。 –

関連する問題