Tôi đang đọc về LISP.
Tôi hiểu cách ký hiệu tiền tố hoạt động ở một mức độ nhất định, nhưng tôi đã tự hỏi liệu có bất kỳ thủ thuật nào để làm cho nó trực quan.
Tôi đang đọc về LISP.
Tôi hiểu cách ký hiệu tiền tố hoạt động ở một mức độ nhất định, nhưng tôi đã tự hỏi liệu có bất kỳ thủ thuật nào để làm cho nó trực quan.
Câu trả lời:
Việc đọc nó từ trái sang phải như ngôn ngữ nói với các động từ thích hợp có thể giúp ích. Ví dụ: (3 3) có thể là "thêm ba và hai". Trong trường hợp tổng quát hơn, bạn có thể nói "thực hiện thao tác $ trên toán hạng $". Áp dụng cho cùng một trường hợp: "Thực hiện thao tác thêm trên ba và hai".
( = 1 2 )
và( > 4 2 )
Thủ thuật? Để làm gì?
Nó không cảm thấy trực quan cho bạn vì trình phân tích cú pháp tinh thần của bạn chưa quen với nó. Nó sẽ trở nên tốt hơn nếu bạn chỉ sử dụng nó và đọc đi đọc lại.
Bạn có thể nghĩ về nó như một kiểu gọi hàm:
(operator operand1 operand2 ...)
Không có gì rất đặc biệt về nó. Nếu bạn quá tải toán tử trong C ++ (và nhiều ngôn ngữ khác cho phép), bạn thường phải xác định loại hàm này chính xác theo cách đó:
MyClass operator+(MyClass const& x, MyClass const& y);
Nhiều ngôn ngữ sử dụng kết hợp tiền tố, tiền tố và thậm chí hậu tố.
Lisp chỉ sử dụng tiền tố - theo mặc định. Nếu sin (x) là trực quan từ toán học, thì (sin x) không còn xa nữa. Nếu di chuyển (chó, nhà) là một cuộc gọi thủ tục truyền thống, thì trong Lisp nó chỉ là (di chuyển chó về nhà).
Lisp không tạo ra bất kỳ ngoại lệ nào cho toán học và xử lý +, -, * và những thứ khác như các lệnh gọi hàm thông thường.