assert

Das Macro assert erwartet zwei Argumente. Es wertet beide aus. Wenn das zweite Argument nil ist, dann wird das erste Argument als Ausnahme mit dem Symbol error geworfen.

Das Macro wird benutzt, um Testfälle oder Zusicherungen auszudrücken. Beispielsweise prüft der unten aufgeführte Testfall, ob für zwei Zahlen und die Addition das Kommutativgesetz erfüllt ist.

  (assert "Kommutativgesetz der Addition"
    (equal? (+ 2 3) (+ 3 2)))

Das Macro basiert auf unless und throw:

  (defmacro assert args
    (quasi-quote
      (unless (unquote (second args))
        (throw (quote error) (unquote (first args))))))