LISP - Macro

Macro cho phép bạn mở rộng cú pháp của LISP chuẩn.

Về mặt kỹ thuật, macro là một hàm nhận biểu thức s làm đối số và trả về biểu mẫu LISP, sau đó được đánh giá.

Xác định Macro

Trong LISP, một macro có tên được xác định bằng cách sử dụng một macro khác có tên defmacro. Cú pháp để xác định macro là:

(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form

Định nghĩa macro bao gồm tên của macro, danh sách tham số, chuỗi tài liệu tùy chọn và nội dung của biểu thức Lisp xác định công việc sẽ được thực hiện bởi macro.

Thí dụ

Hãy để chúng tôi viết một macro đơn giản có tên setTo10, macro này sẽ nhận một số và đặt giá trị của nó thành 10.

Tạo tệp mã nguồn mới có tên main.lisp và nhập mã sau vào đó.

(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)

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à:

25
10