Common Lisp类型说明符

mck*_*mck 5 performance typing common-lisp

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

我看不到穿过森林的树.

任何人都可以给出(或指向)不同类型说明符的简短描述,并且何时可以使用它们?

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

Rai*_*wig 8

CLtl2在标准化之前描述了Common Lisp的一个版本.不要将它作为参考,标准有各种不同.

使用Common Lisp Hyperspec,它基于ANSI Common Lisp Standard.

Common Lisp的类型在HyperSpec中描述:4.2.3类型说明符.从那里链接各种类型.


Dou*_*rie 6

这是一个典型的实现:

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

bignum 是一个无限大小的整数

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

single-float是IEEE单精度浮点数; 它具有较小的范围和精度,可能比双倍慢,但占用的内存较少

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