目录

LISP - 数据类型

在LISP中,变量不是类型,而是数据对象。

LISP数据类型可以归类为。

  • Scalar types - 例如,数字类型,字符,符号等。

  • Data structures - 例如,列表,向量,位向量和字符串。

任何变量都可以将任何LISP对象作为其值,除非您已明确声明它。

虽然,没有必要为LISP变量指定数据类型,但是,它有助于某些循环扩展,方法声明以及我们将在后面的章节中讨论的一些其他情况。

数据类型排列为层次结构。 数据类型是一组LISP对象,许多对象可能属于一个这样的集合。

typep谓词用于查找对象是否属于特定类型。

函数type-of返回给定对象的数据类型。

在LISP中键入说明符

类型说明符是数据类型的系统定义符号。

arrayfixnumpackagesimple-string
atomfloatpathnamesimple-vector
bignumfunctionrandom-statesingle-float
bithash-tableratiostandard-char
bit-vectorintegerrationalstream
characterkeywordreadtablestring
[common]listsequence[string-char]
compiled-functionlong-floatshort-floatsymbol
complexnillsigned-bytet
consnullsimple-arrayunsigned-byte
double-floatnumbersimple-bit-vectorvector

除了这些系统定义的类型,您还可以创建自己的数据类型。 使用defstruct函数定义结构类型时,结构类型的名称将成为有效的类型符号。

例子1 (Example 1)

创建名为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)

单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -

10 
34.567 
123.78 
NIL 
110000.0 
62

例子2 (Example 2)

接下来让我们检查上一个示例中使用的变量类型。 创建名为main的新源代码文件。 lisp并在其中键入以下代码。

(defvar x 10)
(defvar y 34.567)
(defvar ch nil)
(defvar n 123.78)
(defvar bg 11.0e+4)
(defvar 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))

单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -

(INTEGER 0 281474976710655) 
SINGLE-FLOAT 
SINGLE-FLOAT 
NULL 
SINGLE-FLOAT 
(INTEGER 0 281474976710655)
<上一篇.LISP - Basic 语法
LISP - Macros.下一篇>
↑回到顶部↑
WIKI教程 @2018