- LISP 教程
- LISP - 主页
- LISP - 概述
- LISP - 环境
- LISP - 程序结构
- LISP - 基本语法
- LISP - 数据类型
- LISP - 宏
- LISP - 变量
- LISP - 常量
- LISP - 运算符
- LISP - 决策
- LISP - 循环
- LISP - 函数
- LISP - 谓词
- LISP - 数字
- LISP - 字符
- LISP - 数组
- LISP - 字符串
- LISP - 序列
- LISP - 列表
- LISP - 符号
- LISP - 向量
- LISP - 设置
- LISP - 树
- LISP - 哈希表
- LISP - 输入和输出
- LISP - 文件 I/O
- LISP - 结构
- LISP - 包
- LISP - 错误处理
- LISP-CLOS
- LISP 有用资源
- Lisp - 快速指南
- Lisp - 有用的资源
- Lisp - 讨论
LISP - 数据类型
在 LISP 中,变量没有类型化,但数据对象有类型化。
LISP 数据类型可分为以下几类。
标量类型- 例如数字类型、字符、符号等。
数据结构- 例如列表、向量、位向量和字符串。
任何变量都可以将任何 LISP 对象作为其值,除非您已显式声明它。
虽然没有必要为 LISP 变量指定数据类型,但是,它有助于某些循环扩展、方法声明以及我们将在后面的章节中讨论的其他一些情况。
数据类型按层次结构排列。数据类型是一组 LISP 对象,并且许多对象可能属于一个这样的集合。
typep谓词用于查找对象是否属于特定类型。
type -of函数返回给定对象的数据类型。
LISP 中的类型说明符
类型说明符是系统定义的数据类型符号。
大批 | 固定数 | 包裹 | 简单字符串 |
Atomics | 漂浮 | 路径名 | 简单向量 |
比格努姆 | 功能 | 随机状态 | 单浮点 |
少量 | 哈希表 | 比率 | 标准字符 |
位向量 | 整数 | 合理的 | 溪流 |
特点 | 关键词 | 可读表 | 细绳 |
[常见的] | 列表 | 顺序 | [字符串字符] |
编译函数 | 长浮动 | 短浮动 | 象征 |
复杂的 | 零 | 有符号字节 | t |
缺点 | 无效的 | 简单数组 | 无符号字节 |
双浮点 | 数字 | 简单位向量 | 向量 |
除了这些系统定义的类型之外,您还可以创建自己的数据类型。当使用defstruct函数定义结构类型时,结构类型的名称将成为有效的类型符号。
实施例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
接下来让我们检查一下上一个示例中使用的变量的类型。创建名为 main.c 的新源代码文件。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)