我一直在写 Common Lisp 宏,所以 Scheme 的 R5Rs 宏对我来说有点不自然。我想我明白了,除了我不明白如何在语法规则中使用向量模式:
(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))
我看不到如何使用需要将其参数写为向量的宏:
(mac #(1 2 3 4))
=>
1
4
是否有某种使用这些模式的技术?
谢谢!