2012-03-13 12 views
5

Gần đây tôi đã bắt đầu không quan tâm đến các loại thông số để cải thiện hiệu suất mã. This là danh sách tất cả các ký hiệu định danh kiểu trong tiêu chuẩn Common Lisp.Thông số kiểu Lisp thường gặp

Tôi không thể thấy cây qua khu rừng.

Có ai có thể cung cấp (hoặc chỉ cho) mô tả ngắn về các loại thông số khác nhau và khi nào người ta sử dụng chúng?

Mặc dù tôi quan tâm tìm hiểu về tất cả chúng, sự quan tâm trực tiếp của tôi đi đến sự khác biệt giữa các loại liên quan đến số (fixnum, bignum, float, phao đơn, phao ngắn, v.v ...)

+0

Cần lưu ý rằng việc xác định loại không phải là bước đầu tiên trong việc cải thiện hiệu suất. Thông thường, những điều này không bắt buộc, ngoại trừ các vòng chặt chẽ có tính toán nặng. – hajovonta

Trả lời

8

CLtl2 mô tả một phiên bản của Common Lisp trước khi nó được chuẩn hóa. Không sử dụng nó như là một tài liệu tham khảo, có sự khác biệt khác nhau cho tiêu chuẩn.

Sử dụng Common Lisp Hyperspec, dựa trên tiêu chuẩn ANSI Common Lisp.

Các loại Common Lisp được mô tả trong HyperSpec tại đây: 4.2.3 Type Specifiers. Các loại khác nhau được liên kết từ đó.

+0

Thật tuyệt vời! cảm ơn! – mck

6

Đây là một cách thực hiện điển hình:

fixnum là một số nguyên nhỏ phù hợp với thanh ghi máy; nó là số nguyên nhanh nhất

bignum được một số nguyên kích thước không giới hạn

double-float là một độ chính xác kép IEEE số dấu chấm động; nó cũng có thể rất nhanh, tùy thuộc vào máy tính của bạn

single-float là một số điểm nổi chính xác của IEEE; nó còn ít phạm vi và độ chính xác và có thể chậm hơn gấp đôi, nhưng mất ít bộ nhớ

short-floatlong-float thường ánh xạ tới hai loại trên, nhưng cũng có thể khác nhau, một lần nữa, tùy thuộc vào thực hiện CL của bạn

+0

rất hữu ích, cảm ơn bạn! – mck