Ich habe Common-Lisp-Makros geschrieben, daher sind die R5R-Makros von Scheme für mich etwas unnatürlich. Ich denke, ich auf die Idee kam, mit der Ausnahme, dass ich verstehe nicht, wie ein Vektor-Muster in der Syntax-Regeln verwenden würde:Wie werden Vektormuster in Syntaxregeln verwendet?
(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))
Ich sehe nicht, wie ich einen Makro verwenden würde, der seine Argumente erfordert als ein Vektor geschrieben werden:
(maC#(1 2 3 4))
=>
1
4
Gibt es eine Art von Technik, die diese Muster verwendet?
Vielen Dank!
Vielen Dank! Jetzt macht es viel mehr Sinn! :-) – Jay