5

我最近开始摆弄类型说明符以提高代码效率。是 Common Lisp 标准中所有类型说明符符号的列表。

我看不到穿过森林的树。

谁能给出(或指出)不同类型说明符的简短描述,以及何时使用它们?

虽然我有兴趣了解所有这些,但我的直接兴趣在于与数字相关的类型(fixnum、bignum、float、single-float、short-float 等)之间的差异

4

2 回答 2

8

CLtl2 描述了 Common Lisp 标准化之前的一个版本。请勿将其作为参考,与标准存在各种差异。

使用基于 ANSI Common Lisp 标准的 Common Lisp Hyperspec。

Common Lisp 的类型在此处的 HyperSpec 中进行了描述:4.2.3 类型说明符。各种类型从那里链接起来。

于 2012-03-13T20:43:43.630 回答
6

这是一个典型的实现:

fixnum是一个适合机器寄存器的小整数;它是最快的整数

bignum是一个无限大小的整数

double-float是一个 IEEE 双精度浮点数;它也可能非常快,具体取决于您的计算机

single-float是一个 IEEE 单精度浮点数;它的范围和精度更小,可能比 double 慢,但占用的内存更少

short-float并且long-float通常映射到上述两种类型,但也可能不同,这取决于您的 CL 实现

于 2012-03-13T20:31:14.743 回答