Общие спецификаторы типов Lisp - PullRequest
5 голосов
/ 14 марта 2012

Я недавно начал возиться со спецификаторами типов, чтобы повысить эффективность кода. Это - список всех символов спецификатора типа в стандарте Common Lisp.

Я не вижу дерево через лес.

Может ли кто-нибудь дать (или указать) краткое описание различных спецификаторов типов и когда их использовать?

Хотя мне интересно узнать обо всех из них, мой непосредственный интерес касается различий между типами, связанными с числом (fixnum, bignum, float, single-float, short-float и т. Д.)

Ответы [ 2 ]

8 голосов
/ 14 марта 2012

CLtl2 описывает версию Common Lisp до ее стандартизации.Не используйте его в качестве справочного материала, существуют различные отличия от стандарта.

Используйте Hyperpec Common Lisp, который основан на стандарте ANSI Common Lisp.

Типы Common Lispописаны в HyperSpec здесь: 4.2.3 Спецификаторы типа .Различные типы связаны оттуда.

6 голосов
/ 14 марта 2012

Вот типичная реализация:

fixnum - это небольшое целое число, которое помещается в машинный регистр;это самое быстрое целое число

bignum - целое число неограниченного размера

double-float - число с плавающей точкой двойной точности IEEE;это также может быть очень быстро, в зависимости от вашего компьютера

single-float - это число с плавающей точкой одинарной точности IEEE;он имеет меньший диапазон и точность и может быть медленнее, чем удвоенный, но занимает меньше памяти

short-float и long-float часто отображаются на два вышеуказанных типа, но также могут отличаться, опять же, в зависимости от вашегоРеализация CL

...