鍍金池/ 教程/ Java/ LISP - 宏
LISP - 樹
LISP - 錯誤處理
LISP - 謂詞
LISP - 決策
LISP - 變量
LISP - 數(shù)組
LISP - 對象系統(tǒng)(CLOS)
LISP - 輸入和輸出
Lisp教程
LISP - 數(shù)字
LISP - 循環(huán)
LISP - 常量
LISP - 集合
LISP - 字符
LISP - 程序結(jié)構(gòu)
LISP - 文件I/O
LISP - 哈希表
LISP - 宏
LISP - 數(shù)據(jù)類型
LISP - 包
LISP - 符號
LISP - 運(yùn)算符
LISP - 基本語法
LISP - 函數(shù)
LISP - 向量
LISP - 結(jié)構(gòu)
LISP - 概述介紹

LISP - 宏

宏可以擴(kuò)展標(biāo)準(zhǔn)LISP的語法。

從技術(shù)上講,宏是一個(gè)函數(shù),它接受一個(gè)s-expression作為參數(shù),并返回一個(gè)LISP的形式,然后進(jìn)行評估計(jì)算。

定義一個(gè)宏

在LISP中,一個(gè)名為宏使用另一個(gè)名為defmacro宏定義。定義一個(gè)宏的語法:

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

宏定義包含宏的名稱,參數(shù)列表,可選的文檔字符串,和Lisp表達(dá)式的體,它定義要由宏執(zhí)行的任務(wù)。

實(shí)例

讓我們寫了一個(gè)名為setTo10簡單的宏,將采取一系列并將其值設(shè)置為10。

創(chuàng)建一個(gè)名為main.lisp新的源代碼文件,并在其中輸入如下代碼:

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

當(dāng)您單擊Execute按鈕,或按下Ctrl+ E,LISP立即執(zhí)行它,返回的結(jié)果是:

25 
10

上一篇:LISP - 包下一篇:LISP - 樹