Để cung cấp một ví dụ đơn giản: (define-macro-variable _iota 0) ; define-macro-variable does not really exist
(define-syntax (iota stx)
(syntax-case stx()
((iota)
(let ((i _iota))
Tôi đã đọc JRM's Syntax-rules Primer cho Lập dị đơn thuần và nó đã giúp tôi hiểu quy tắc cú pháp và cách khác với macro xác định chung của lisp. cú pháp-quy tắc chỉ là một cách để thực hiện một biến á
Tôi đã viết các macro Common Lisp, vì vậy các macro R5Rs của Scheme có một chút không tự nhiên đối với tôi. Tôi nghĩ Tôi có ý tưởng, ngoại trừ việc tôi không hiểu tại sao người ta sẽ sử dụng các mẫu v