2017-05-30 81 views
1

對於我所知道的函數式語言通常使用的λ爲參照匿名函數,但我不認爲是真正有用的使用方法:的這是在這種情況下使用lambda的原因?

(define square 
    (lambda (x) (* x x))) 

代替

(define (square x) 
    (* x x)) 

爲什麼幾乎所有我找到的關於Scheme的文件都使用了第一種形式? 謝謝

回答

1

我總是使用這個語法,因爲它是顯式的。 lambda定義了一個函數。函數沒有名字。然後你將這個函數分配給一個變量。變量有名字。形式(define (f x) ...)僅僅是一個非常常見的語法糖,但掩蓋了一個事實,即scheme是一個lisp-1。