- 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 - 数字
Common Lisp 定义了几种数字。数字数据类型包括LISP支持的各种数字。
LISP 支持的数字类型是 -
- 整数
- 比率
- 浮点数字
- 复数
下图显示了 LISP 中可用的数字层次结构和各种数字数据类型 -
LISP 中的各种数字类型
下表描述了 LISP 中可用的各种数字类型数据 -
先生。 | 数据类型和描述 |
---|---|
1 | 固定数 此数据类型表示不太大的整数,大部分在 -215 到 215-1 范围内(与机器相关) |
2 | 比格努姆 这些是非常大的数字,其大小受到为 LISP 分配的内存量的限制,它们不是固定数字。 |
3 | 比率 以分子/分母形式表示两个数字的比率。当 / 函数的参数为整数时,它始终以比率形式生成结果。 |
4 | 漂浮 它代表非整数。有四种精度不断增加的浮点数据类型。 |
5 | 复杂的 它代表复数,用#c 表示。实部和虚部可以是有理数或浮点数。 |
例子
创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。
(write (/ 1 2)) (terpri) (write ( + (/ 1 2) (/ 3 4))) (terpri) (write ( + #c( 1 2) #c( 3 -4)))
当您执行代码时,它会返回以下结果 -
1/2 5/4 #C(4 -2)
数字函数
下表描述了一些常用的数字函数 -
先生。 | 功能说明 |
---|---|
1 | +、-、*、/ 各自的算术运算 |
2 | sin、cos、tan、acos、asin、atan 各自的三角函数。 |
3 | 辛、科什、tanh、阿科什、阿辛、阿坦 各自的双曲函数。 |
4 | 经验值 幂函数。计算 e x |
5 | 出口 幂函数,同时取底数和幂。 |
6 | 开方 它计算数字的平方根。 |
7 | 日志 对数函数。给定一个参数,则计算其自然对数,否则以第二个参数为底。 |
8 | 共轭 它计算数字的复共轭。如果是实数,则返回数字本身。 |
9 | 腹肌 它返回数字的绝对值(或大小)。 |
10 | 最大CD 它计算给定数字的最大公约数。 |
11 | 液晶模组 它计算给定数字的最小公倍数。 |
12 | 伊索特 它给出小于或等于给定自然数的精确平方根的最大整数。 |
13 | 地板、天花板、截头、圆形 所有这些函数都将两个参数作为数字并返回商;float返回不大于ratio的最大整数,ceiling选择大于ratio的较小整数,truncate选择与ratio同号且最大绝对值小于ratio绝对值的整数,round选择最接近比率的整数。 |
14 | fFloor、fceiling、ftruncate、fround 与上面的操作相同,但以浮点数形式返回商。 |
15 | 模组、雷姆 返回除法运算的余数。 |
16 | 漂浮 将实数转换为浮点数。 |
17 号 | 合理化,合理化 将实数转换为有理数。 |
18 | 分子、分母 返回有理数的各个部分。 |
19 | 真实部分、图像部分 返回复数的实部和虚部。 |
例子
创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。
(write (/ 45 78)) (terpri) (write (floor 45 78)) (terpri) (write (/ 3456 75)) (terpri) (write (floor 3456 75)) (terpri) (write (ceiling 3456 75)) (terpri) (write (truncate 3456 75)) (terpri) (write (round 3456 75)) (terpri) (write (ffloor 3456 75)) (terpri) (write (fceiling 3456 75)) (terpri) (write (ftruncate 3456 75)) (terpri) (write (fround 3456 75)) (terpri) (write (mod 3456 75)) (terpri) (setq c (complex 6 7)) (write c) (terpri) (write (complex 5 -9)) (terpri) (write (realpart c)) (terpri) (write (imagpart c))
当您执行代码时,它会返回以下结果 -
15/26 0 1152/25 46 47 46 46 46.0 47.0 46.0 46.0 6 #C(6 7) #C(5 -9) 6 7