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