鍍金池/ 教程/ Java/ LISP - 數(shù)據(jù)類型
LISP - 樹
LISP - 錯(cuò)誤處理
LISP - 謂詞
LISP - 決策
LISP - 變量
LISP - 數(shù)組
LISP - 對(duì)象系統(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 - 符號(hào)
LISP - 運(yùn)算符
LISP - 基本語法
LISP - 函數(shù)
LISP - 向量
LISP - 結(jié)構(gòu)
LISP - 概述介紹

LISP - 數(shù)據(jù)類型

在LISP中,變量沒有類型的,但有數(shù)據(jù)對(duì)象。

LISP數(shù)據(jù)類型可分類為:

  • 標(biāo)量類型 - 例如,數(shù)字類型,字符,符號(hào)等。

  • 數(shù)據(jù)結(jié)構(gòu) - 例如,列表,向量,比特向量和字符串。

任何變量都可以采取任何的Lisp對(duì)象作為它的值,除非明確地聲明它。

雖然,這是沒有必要指定一個(gè)Lisp變量的數(shù)據(jù)類型,但是,它有助于在一定的循環(huán)擴(kuò)展,在方法聲明和其他一些情況下,我們將在后面的章節(jié)中討論。 

該數(shù)據(jù)類型被布置成層次結(jié)構(gòu)。數(shù)據(jù)類型是一組LISP對(duì)象和多個(gè)對(duì)象可能屬于這樣的一套。

typep謂詞用于發(fā)現(xiàn)一個(gè)對(duì)象是否屬于一個(gè)特定的類型。

type-of函數(shù),返回給定對(duì)象的數(shù)據(jù)類型的類型。

在LISP類型說明符

類型說明符是數(shù)據(jù)類型的系統(tǒng)定義的符號(hào)。

array fixnum package simple-string
atom float pathname simple-vector
bignum function random-state single-float
bit hash-table ratio standard-char
bit-vector integer rational stream
character keyword readtable string
[common] list sequence [string-char]
compiled-function long-float short-float symbol
complex nill signed-byte t
cons null simple-array unsigned-byte
double-float number simple-bit-vector vector

除了這些系統(tǒng)定義的類型,可以創(chuàng)建自己的數(shù)據(jù)類型。當(dāng)一個(gè)結(jié)構(gòu)類型是使用defstruct函數(shù)定義,結(jié)構(gòu)類型的名稱將成為一個(gè)有效的類型符號(hào)。>/p>

示例1

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

(setq x 10)
(setq y 34.567)
(setq ch nil)
(setq n 123.78)
(setq bg 11.0e+4)
(setq r 124/2)
(print x)
(print y)
(print n)
(print ch)
(print bg)
(print r)

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

10 
34.567 
123.78 
NIL 
110000.0 
62

實(shí)例2

接下來讓我們看看前面的例子中使用的變量的類型。創(chuàng)建一個(gè)名為main.lisp新的源代碼文件,并在其中輸入如下代碼:

(setq x 10)
(setq y 34.567)
(setq ch nil)
(setq n 123.78)
(setq bg 11.0e+4)
(setq r 124/2)
(print (type-of x))
(print (type-of y))
(print (type-of n))
(print (type-of ch))
(print (type-of bg))
(print (type-of r))

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

(INTEGER 0 281474976710655) 
SINGLE-FLOAT 
SINGLE-FLOAT 
NULL 
SINGLE-FLOAT 
(INTEGER 0 281474976710655)

上一篇:LISP - 決策下一篇:LISP - 向量