LISP - Cú pháp cơ bản
Khối xây dựng cơ bản trong LISP
Các chương trình LISP được tạo thành từ ba khối xây dựng cơ bản:
atom
list
string
An atomlà một số hoặc một chuỗi ký tự liền nhau. Nó bao gồm các số và các ký tự đặc biệt.
Sau đây là ví dụ về một số nguyên tử hợp lệ -
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
A list là một chuỗi các nguyên tử và / hoặc danh sách khác được đặt trong dấu ngoặc đơn.
Sau đây là ví dụ về một số danh sách hợp lệ -
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
A string là một nhóm các ký tự được đặt trong dấu ngoặc kép.
Sau đây là ví dụ về một số chuỗi hợp lệ:
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "
Thêm nhận xét
Biểu tượng dấu chấm phẩy (;) được sử dụng để chỉ dòng chú thích.
Ví dụ,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Point'! Learning LISP")
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à:
Hello World
I am at 'Tutorials Point'! Learning LISP
Một số điểm đáng chú ý trước khi chuyển sang tiếp theo
Sau đây là một số điểm quan trọng cần lưu ý:
Các phép toán số cơ bản trong LISP là +, -, * và /
LISP đại diện cho một lời gọi hàm f (x) là (fx), ví dụ cos (45) được viết là cos 45
Biểu thức LISP không phân biệt chữ hoa chữ thường, cos 45 hoặc COS 45 giống nhau.
LISP cố gắng đánh giá mọi thứ, bao gồm cả các đối số của một hàm. Chỉ có ba loại phần tử là hằng số và luôn trả về giá trị riêng của chúng
Numbers
Lá thư t, nghĩa là đúng logic.
Giá trị nil, đó là viết tắt của logic false, cũng như một danh sách trống.
Thông tin thêm về Biểu mẫu LISP
Trong chương trước, chúng tôi đã đề cập rằng quá trình đánh giá mã LISP thực hiện các bước sau.
Trình đọc dịch các chuỗi ký tự thành các đối tượng LISP hoặc s-expressions.
Trình đánh giá xác định cú pháp của Lisp formsđược xây dựng từ biểu thức s. Mức đánh giá thứ hai này xác định cú pháp xác định biểu thức s nào là dạng LISP.
Bây giờ, một biểu mẫu LISP có thể là.
Một nguyên tử
Một danh sách trống hoặc không có
Bất kỳ danh sách nào có ký hiệu là phần tử đầu tiên của nó
Bộ đánh giá hoạt động như một hàm lấy một biểu mẫu LISP hợp lệ làm đối số và trả về một giá trị. Đây là lý do tại sao chúng tôi đặtLISP expression in parenthesis, bởi vì chúng tôi đang gửi toàn bộ biểu thức / biểu mẫu đến trình đánh giá dưới dạng đối số.
Quy ước đặt tên trong LISP
Tên hoặc ký hiệu có thể bao gồm bất kỳ số ký tự chữ và số nào khác ngoài khoảng trắng, dấu ngoặc đơn mở và đóng, dấu ngoặc kép và dấu nháy đơn, dấu gạch chéo ngược, dấu phẩy, dấu hai chấm, dấu chấm phẩy và thanh dọc. Để sử dụng các ký tự này trong tên, bạn cần sử dụng ký tự thoát (\).
Tên có thể có các chữ số nhưng không hoàn toàn được tạo bởi các chữ số, vì khi đó nó sẽ được đọc như một số. Tương tự, một cái tên có thể có dấu chấm, nhưng không thể được tạo hoàn toàn bằng dấu chấm.
Sử dụng Dấu ngoặc kép
LISP đánh giá mọi thứ bao gồm các đối số của hàm và danh sách các thành viên.
Đôi khi, chúng ta cần xem xét các nguyên tử hoặc danh sách theo đúng nghĩa đen và không muốn chúng được đánh giá hoặc coi chúng như các lệnh gọi hàm.
Để làm điều này, chúng ta cần đặt trước nguyên tử hoặc danh sách bằng một dấu ngoặc kép.
Ví dụ sau đây chứng minh điều này.
Tạo một tệp có tên main.lisp và nhập mã sau vào tệp đó.
(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))
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à:
single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6