我最近开始摆弄类型说明符以提高代码效率。这是 Common Lisp 标准中所有类型说明符符号的列表。
我看不到穿过森林的树。
谁能给出(或指出)不同类型说明符的简短描述,以及何时使用它们?
虽然我有兴趣了解所有这些,但我的直接兴趣在于与数字相关的类型(fixnum、bignum、float、single-float、short-float 等)之间的差异
我最近开始摆弄类型说明符以提高代码效率。这是 Common Lisp 标准中所有类型说明符符号的列表。
我看不到穿过森林的树。
谁能给出(或指出)不同类型说明符的简短描述,以及何时使用它们?
虽然我有兴趣了解所有这些,但我的直接兴趣在于与数字相关的类型(fixnum、bignum、float、single-float、short-float 等)之间的差异
CLtl2 描述了 Common Lisp 标准化之前的一个版本。请勿将其作为参考,与标准存在各种差异。
使用基于 ANSI Common Lisp 标准的 Common Lisp Hyperspec。
Common Lisp 的类型在此处的 HyperSpec 中进行了描述:4.2.3 类型说明符。各种类型从那里链接起来。
这是一个典型的实现:
fixnum
是一个适合机器寄存器的小整数;它是最快的整数
bignum
是一个无限大小的整数
double-float
是一个 IEEE 双精度浮点数;它也可能非常快,具体取决于您的计算机
single-float
是一个 IEEE 单精度浮点数;它的范围和精度更小,可能比 double 慢,但占用的内存更少
short-float
并且long-float
通常映射到上述两种类型,但也可能不同,这取决于您的 CL 实现