Tham khảo tài liệu 'giáo trình phân tích quy trình ứng dụng điều phối đối tượng dữ liệu mang bộ mô tả kiểu động p8', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Chương VIII Lập trình hà Biếu thức Biêu thức là một nguyên tử hoặc một danh sách. Biêu thức luôn có một giá trị mà việc định trị nó theo nguyên tắc sau Nếu biêu thức là một số thì giá trị của biêu thức là giá trị của số đó. Ví dụ 25 25 Nếu biêu thức là một ký hiệu thì giá trị của biêu thức có thê là - Được xác định trước bởi LISP chẳng hạn t có giá trị là T TRUE và nil có giá trị là NIL một danh sách rỗng hoặc - Một giá trị dữ liệu của người sử dụng hoặc trong chương trình được gán cho một biến. Biến không cần phải khai báo. Ví du setq a 3 Gán số 3 cho biến có tên a 3 a hỏi giá trị của ký hiệu a 3 Nếu biêu thức là một danh sách có dạng E0 E1 . En thì giá trị của biêu thức được xác định theo cách sau đây - Phần tử đầu tiên E0 phải là một hàm đã được LISP nhận biết. - Các phần tử E1 E2 . En được định trị tuần tự từ trái sang phải. Giả sử ta có các giá trị tương ứng là V1 V2 . Vn - Hàm E0 được áp dụng cho các đối V1 V2 . Vn. Giá trị của hàm E0 chính là giá trị của biêu thức. Ví dụ 5 3 6 14 4 3 5 12 - Chú ý Nếu biêu thức dùng hàm QUOTE hoặc dấu nháy đơn sẽ không được đánh giá Ví dụ 1 2 1 2 84 Chương VIII Lập trình hà Các hàm Một chương trình của LISP là một hàm hoặc một hàm hợp. Các hàm có thể do LISP định nghĩa trước hoặc do lập trình viên tự định nghĩa. Một số hàm định nghĩa trước Các hàm số học - 1 1- MOD SQRT tác động lên các biểu thức số và cho kết quả là một số. Ví dụ 5 6 2 13 - 8 3 5 - 8 3 1 4 1 5 Tương đương 5 1 6 1- 5 Tương đương - 5 1 4 MOD 14 3 2 sqrt 9 Lấy căn bậc hai của 9 3 Các hàm so sánh các số và cho kết quả là T hoặc NIL Ví dụ 4 5 T 4 2 3 NIL EQ s1 s2 so sánh xem hai ký hiệu s1 và s2 có giống nhau hay không Ví dụ eq tuong tuong T eq tuong duong NIL eq 5 5 85 Chương VIII Lập trình hà T EQUAL o1 o2 so sánh xem đối tượng bất kỳ o1 và o2 có giống nhau hay không Ví dụ equal a b c a b c T equal a b c b a c NIL equal a a T Các hàm thao tác trên danh sách CAR CDR CONS và LIST - CAR L nhận vào danh sách L trả về phần tử đầu tiên của L. Ví du CAR 1 2 3 1