私は 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
それらのパターンを使用する何らかのテクニックはありますか?
ありがとうございました!