@期待される動作がある私は、組み込みコマンドリーダーマクロを `使用せずに(にunquoteとにunquoteスプライシング付き)バッククォートをリメイクする必要があります。私は共通のlispでバッククォートを再実装できますか?
> (BACKQUOTE (A B (LIST ‘C ‘D) (COMA (LIST ‘E ‘F)
(COMA-AT (LIST ‘G ‘H)))
(A B (LIST ‘C ‘D) (E F) G H)
私はマクロでそれを実行しようとしないが、結果は全くあり期待される。
多くの感謝!!!
何ができるかについてのヒント?
(defmacro backquote (expr)
(labels
((step (p n)
(append p
(if (atom n) (list n)
(case (car n)
('comma (list (eval (cadr n))))
('comma-at (eval (cadr n))))))))
(list 'quote (reduce #'step (cons() expr)))))
訂正や提案を、それを改善するためにしている:ポール・グレアムのコードを理解しようとしているときに
あなたのご質問はありますか? –