LISP - 巨集


巨集可以擴充套件標準LISP的語法。

從技術上講,巨集是一個函式,它接受一個s-expression作為引數,並返回一個LISP的形式,然後進行評估計算。

定義一個巨集

在LISP中,一個名為巨集使用另一個名為defmacro巨集定義。定義一個巨集的語法:

(defmacro macro-name (parameter-list)
 "Optional documentation string."
 body-form)

巨集定義包含巨集的名稱,引數列表,可選的文件字串,和Lisp表示式的體,它定義要由巨集執行的任務。

範例

讓我們寫了一個名為setTo10簡單的巨集,將採取一系列並將其值設定為10。

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

defmacro setTo10(num)
 (setq num 10)(print num))
 (setq x 25)
 (print x)
 (setTo10 x)

當您單擊Execute按鈕,或按下Ctrl+ E,LISP立即執行它,返回的結果是:

25 
10