2017-04-05 10 views

答えて

4

(define (x) 100)と同じです:あなたはので、ここでアルゴル言語に、よりかもしれない

(define x   ; define the variable named x 
     (lambda() ; as a anoymous function with zero arguments 
      100)) ; that returns 100 

x ; ==> #<function> (some representation of the evaluated lambda object, there is no standard way) 
(x) ; ==> 100 (The result of calling the function) 

JavaScriptで同じです:

var x =   // define the variable named x 
    function() { // as the anonymous function with zero arguments 
    return 100; // that returns 100 
    }; 
x; // => function() { return 100; } (prints its source) 
x(); // => 100 (the result of calling the function) 

function x() { return 100; }は同じです

初心者は、のような変数の周りにかっこを追加することがありますAlgol言語でx()()と書くのと同じです。したがって、xは、機能するために引数がゼロの関数を返すゼロ引数の関数でなければなりません。

0

(define (x) 100)(define x (lambda() 100))に相当します。 最初の構文は実際には2番目の構文砂糖です。どちらも手続きを定義します。

xを使用すると、Schemeインタプリタは自分自身xを返します。この場合、xはラムダ式です。 (x)を使用する場合は、xという名前のプロシージャを呼び出しています。この方式のインタプリタはの内容をxに入れます。この場合はラムダ式を返し、戻り値を返します。

ラムダを使用するには、ラムダ式を演算子として考慮します。 だから、((lambda (<arg-list>) <body>) <parameter-list>) それとも、あなたが変数にラムダ式を定義した場合、たとえば、あなたが何をすべきかなど、オペレーターとして変数を取る、

(define x 
    (lambda() 100)) 
(x) 
関連する問題