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 vector trong cú pháp-luật:Các mẫu vectơ được sử dụng như thế nào trong các quy tắc cú pháp?
(define-syntax mac
(syntax-rules()
((maC#(a b c d))
(let()
(display a)
(newline)
(display d)
(newline)))))
(expand '(maC#(1 2 3 4))) ;; Chicken's expand-full extension shows macroexpansion
=> (let746() (display747 1) (newline748) (display747 4) (newline748))
tôi không thấy làm thế nào tôi muốn sử dụng một macro mà yêu cầu đối số của nó được viết dưới dạng vectơ:
(maC#(1 2 3 4))
=>
1
4
Có loại kỹ thuật nào sử dụng các mẫu đó không?
Cảm ơn bạn!
Cảm ơn bạn! Bây giờ nó có ý nghĩa hơn rất nhiều! :-) – Jay