これが私のマクロ定義です:
*(defmacro run-test (test)
`(format t "Run test ~a ... ~a" ',test ,test))
*(run-test (= 1 1))
Run test (= 1 1) ... T
NIL
今のところすべて正常に動作するので、2 つ目のマクロを定義しました (複数のテストを実行するため)。
*(defmacro run-tests (&body body)
`(loop for tc in ',body
do (run-test tc)))
* (run-tests (= 2 (1+ 1)) (= 1 1))
Run test TC ... (= 2 (1+ 1) Run test TC ... (= 1 1)
この結果は私が望んでいたものではありません. の各値をtc
SEXP に置き換え、その値を実行テストで評価したかったのです. ライン交換してみた
do (run-test tc)
と
do (run-test ,tc)
しかし、これはエラーを示します
未定義変数: TC
これを変更して正しい結果を得るにはどうすればよいですか?