Lisp - Lambda 函式



有時你可能只需要在程式的一個地方使用一個函式,而這個函式非常簡單,以至於你可能不會給它命名,或者不想將其儲存在符號表中,而是寧願編寫一個未命名的或匿名函式。

LISP允許你編寫匿名函式,這些函式只有在程式中遇到時才會被求值。這些函式被稱為Lambda 函式

你可以使用lambda表示式建立這樣的函式。lambda表示式的語法如下:

(lambda (parameters) body)

lambda 表示式不能被求值,它只能出現在 LISP 期望找到函式的地方。

示例

建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (+ (* a (* x x)) (* b x) c))
   4 2 9 3)
)

輸出

執行程式碼後,將返回以下結果:

51

示例

更新名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (+ a b c x))
   4 2 9 3)
)

輸出

執行程式碼後,將返回以下結果作為傳遞引數的和:

18

示例

更新名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼。

main.lisp

; create a lambda expression and print the result
(write ((lambda (a b c x)
   (* a b c x))
   4 2 9 3)
)

輸出

執行程式碼後,將返回以下結果作為傳遞引數的積:

216
lisp_functions.htm
廣告
© . All rights reserved.