:速記関数の構文を使用して、より多くの慣用的
(define function-3
(λ (x)
(x 3)))
、それはおそらく書き込まれます値が関数であるとき
(define (function-3 f)
(f 3))
(名前f
は、多くの場合、代わりにx
のに使用されます。このような)
なぜですか?
ラケットの機能(親言語のSchemeなど)は単なる通常の値です。すべての括弧の後ろに、関数アプリケーションの構文は実際は非常に簡単です。以下に、スキーム表現の例を示します。
(f a b c)
^^^^^^
| |
function expression argument expressions
これらの2つの役割のそれぞれは表現です。あなたはこのようなことを行うことができますので、明らかに、引数は、表現だけでなく、変数を指定できます
> (+ 1 (* 2 3))
7
注目すべきは、しかし、関数自体も、表現することができます。あなたは機能を生成し、フォーム、およびその式が関数呼び出しで使用することができていることができます:あなたは(function-3 sqrt)
を呼び出すとき
> ((λ (x) (* x 2)) 3)
6
だから、sqrt
機能自体は、関数に渡されたとの最初の引数にバインドされます関数の実装したがって、あなたがする必要があるのは、その引数を関数式の位置に置くことだけです。他の関数と同じように呼び出されます。
ありがとうございます!私はそれを理解しようとしていた、私はそこに着いていたように感じた!明確化のおかげで – tadashi