sagen, dass ich ein Makro für CL-WHO definiert haben:Common Lisp: Wie Makro zu verwenden, um S-Ausdrücke für CL-WHO zu generieren?
(defmacro test-html (&body body)
`(with-html-output-to-string (*standard-output* nil :PROLOGUE t :indent t)
(:html
(:body
,@body))))
Dann:
(test-html (:h1 "hallo"))
Gibt (erste Zeile entfernt):
"<html>
<body>
<h1>
hallo
</h1>
</body>
</html>"
Wie erwartet. Jetzt habe ich eine Funktion definiert, um den s-Ausdruck zu erzeugen, indem CL-WHO verwendet werden:
(defun test-header (txt)
`(:h1 ,txt))
Beim Aufruf mit "Hallo" zurück
(:h1 "hallo")
aber jetzt, wenn ich rufe
(test-html (test-header "hallo"))
Es gibt:
"<html>
<body>
</body>
</html>"
Was ist schief gegangen und warum?
Danke für den Link! Es ist lustig ... nachdem ich den ganzen Artikel gelesen und den Kommentarteil erreicht habe, habe ich festgestellt, dass ich diesen Artikel vor 2 Monaten gelesen habe und einen Kommentar hinterlassen habe. Meine Erinnerung versagt mir - ich werde Vsevolods Gabel ausprobieren! – mck