私はスキームを学んでいます。ラムダ式とレット式の両方を使用する方法を知っています。
ただし、ラムダを使用することのポイントを理解するのに苦労しています。ラムダでできることをletですべて行うことはできませんか?
ラムダ式がletよりも優れた選択である状況の例を見ると特に役立ちます。
もう1つ-ラムダよりもletの方が便利な状況もありますか?もしそうなら、そのような例もいいでしょう。
編集:defineとlambdaは同様のタスクを実行しているように見えるので、それらを対比することにも興味があります。
アップデート:
みんな助けてくれてありがとう。私はあなたの答えを読んだ後、ラムダ/レット/定義をもう少し調べました、そして今それをもっとよく理解しています。
クールなラムダの使用法の優れた例に出くわしました-プロシージャから無名関数を返します。たとえば、operateTwice
以下のプロシージャは、プロシージャに渡されたパラメータに基づく無名関数を返します。
(define operateTwice
(lambda (op1 op2)
(lambda (x y)
(op2 (op1 x y) y))))
((operateTwice * +) 2 3) ;equivalent to: (+ (* 2 3) 3), or in standard notation 2*3+3
出力:
9