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)