在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 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 - 運算符
LISP - 基本語法
LISP - 函數(shù)
LISP - 向量
LISP - 結(jié)構(gòu)
LISP - 概述介紹

LISP - 符號

在LISP語言中,符號是表示數(shù)據(jù)對象和有趣的是它也是一個數(shù)據(jù)對象的名稱。

是什么使得符號特殊之處在于他們有分別叫property list,或 plist.

屬性列表

LISP可以讓屬性,以符號分配。例如,我們有一個'人'的對象。希望這個'人'的對象有像姓名,性別,身高,體重,住址,職業(yè)等屬性是一些屬性名稱。

一個屬性列表被實現(xiàn)為具有元素為偶數(shù)(可能為零)的列表。每對列表中的元素構(gòu)成一個條目;第一個項目是指標,而第二個是該值。

當創(chuàng)建一個符號,它的屬性列表最初是空的。屬性是使用于asetf形式得到建立。

例如,下面的語句使我們能夠分配屬性標題,作者和出版商,以及相應的值,命名(符號)'書'的對象。

示例 1

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

((write (setf (get 'books'title) '(Gone with the Wind)))
(terpri)
(write (setf (get 'books 'author) '(Margaret Michel)))
(terpri)
(write (setf (get 'books 'publisher) '(Warner Books)))

當執(zhí)行代碼,它返回以下結(jié)果:

(GONE WITH THE WIND)
(MARGARET MICHEL)
(WARNER BOOKS)

各種屬性列表功能允許你指定的屬性以及檢索,替換或刪除一個符號的屬性。

get 函數(shù)返回符號的屬性列表對于一個給定的指標。它的語法如下:

get symbol indicator &optional default

get 函數(shù)查找指定的指標給定的符號的屬性列表,如果找到則返回相應的值;否則默認返回(或nil,如果沒有指定默認值)。

示例 2

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

(setf (get 'books 'title) '(Gone with the Wind))
(setf (get 'books 'author) '(Margaret Micheal))
(setf (get 'books 'publisher) '(Warner Books))
(write (get 'books 'title))
(terpri)
(write (get 'books 'author))
(terpri)
(write (get 'books 'publisher))

當執(zhí)行代碼,它返回以下結(jié)果:

(GONE WITH THE WIND)
(MARGARET MICHEAL)
(WARNER BOOKS)

symbol-plist函數(shù)可以看到一個符號的所有屬性。

示例 3

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

(setf (get 'annie 'age) 43)
(setf (get 'annie 'job) 'accountant)
(setf (get 'annie 'sex) 'female)
(setf (get 'annie 'children) 3)
(terpri)
(write (symbol-plist 'annie))

當執(zhí)行代碼,它返回以下結(jié)果:

(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT AGE 43)

remprop函數(shù)從符號中刪除指定的屬性。

示例 4

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

(setf (get 'annie 'age) 43)
(setf (get 'annie 'job) 'accountant)
(setf (get 'annie 'sex) 'female)
(setf (get 'annie 'children) 3)
(terpri)
(write (symbol-plist 'annie))
(remprop 'annie 'age)
(terpri)
(write (symbol-plist 'annie))

當執(zhí)行代碼,它返回以下結(jié)果:

(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT AGE 43)
(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT)

上一篇:LISP - 哈希表下一篇:LISP - 概述介紹