LISP - Loại dữ liệu
Trong LISP, các biến không được nhập, nhưng các đối tượng dữ liệu thì có.
Các kiểu dữ liệu LISP có thể được phân loại như.
Scalar types - ví dụ, các loại số, ký tự, ký hiệu, v.v.
Data structures - ví dụ, danh sách, vectơ, vectơ bit và chuỗi.
Bất kỳ biến nào cũng có thể lấy bất kỳ đối tượng LISP nào làm giá trị của nó, trừ khi bạn đã khai báo nó một cách rõ ràng.
Mặc dù, không nhất thiết phải chỉ định kiểu dữ liệu cho một biến LISP, tuy nhiên, nó giúp ích trong việc mở rộng vòng lặp nhất định, trong khai báo phương thức và một số tình huống khác mà chúng ta sẽ thảo luận trong các chương sau.
Các kiểu dữ liệu được sắp xếp thành một hệ thống phân cấp. Kiểu dữ liệu là một tập hợp các đối tượng LISP và nhiều đối tượng có thể thuộc về một tập hợp đó.
Các typep vị từ được sử dụng để tìm xem một đối tượng có thuộc một kiểu cụ thể hay không.
Các type-of hàm trả về kiểu dữ liệu của một đối tượng nhất định.
Nhập các chỉ định trong LISP
Các chỉ định kiểu là các ký hiệu do hệ thống xác định cho các kiểu dữ liệu.
mảng | fixnum | gói hàng | chuỗi đơn |
nguyên tử | Phao nổi | tên đường dẫn | vector đơn giản |
bignum | chức năng | trạng thái ngẫu nhiên | phao đơn |
bit | bảng băm | tỉ lệ | tiêu chuẩn-char |
bit-vector | số nguyên | hợp lý | suối |
tính cách | từ khóa | có thể đọc được | chuỗi |
[chung] | danh sách | sự nối tiếp | [string-char] |
hàm biên dịch | trôi nổi | phao ngắn | Biểu tượng |
phức tạp | nill | byte đã ký | t |
khuyết điểm | vô giá trị | mảng đơn giản | byte không dấu |
phao kép | con số | đơn giản-bit-vector | vector |
Ngoài các kiểu do hệ thống xác định này, bạn có thể tạo các kiểu dữ liệu của riêng mình. Khi một kiểu cấu trúc được xác định bằng cách sử dụngdefstruct chức năng, tên của kiểu cấu trúc trở thành một ký hiệu kiểu hợp lệ.
ví dụ 1
Tạo tệp mã nguồn mới có tên main.lisp và nhập mã sau vào đó.
(setq x 10)
(setq y 34.567)
(setq ch nil)
(setq n 123.78)
(setq bg 11.0e+4)
(setq r 124/2)
(print x)
(print y)
(print n)
(print ch)
(print bg)
(print r)
Khi bạn nhấp vào nút Execute hoặc gõ Ctrl + E, LISP sẽ thực thi nó ngay lập tức và kết quả trả về là:
10
34.567
123.78
NIL
110000.0
62
Ví dụ 2
Tiếp theo, hãy kiểm tra các loại biến được sử dụng trong ví dụ trước. Tạo tệp mã nguồn mới có tên là main. lisp và nhập mã sau vào đó.
(defvar x 10)
(defvar y 34.567)
(defvar ch nil)
(defvar n 123.78)
(defvar bg 11.0e+4)
(defvar r 124/2)
(print (type-of x))
(print (type-of y))
(print (type-of n))
(print (type-of ch))
(print (type-of bg))
(print (type-of r))
Khi bạn nhấp vào nút Execute hoặc gõ Ctrl + E, LISP sẽ thực thi nó ngay lập tức và kết quả trả về là:
(INTEGER 0 281474976710655)
SINGLE-FLOAT
SINGLE-FLOAT
NULL
SINGLE-FLOAT
(INTEGER 0 281474976710655)