CL-WHO のマクロを定義したとします。
(defmacro test-html (&body body)
`(with-html-output-to-string (*standard-output* nil :PROLOGUE t :indent t)
(:html
(:body
,@body))))
それで:
(test-html (:h1 "hallo"))
与える (最初の行を削除):
"<html>
<body>
<h1>
hallo
</h1>
</body>
</html>"
予想通り。これで、CL-WHO で使用される s 式を生成する関数を定義しました。
(defun test-header (txt)
`(:h1 ,txt))
"hello" で呼び出されると戻ります
(:h1 "hallo")
しかし、今私が電話するとき
(test-html (test-header "hallo"))
戻り値:
"<html>
<body>
</body>
</html>"
何が問題で、その理由は?