The report-result
function needs both the source code and the result of the execution.
The macro CHECK
provides both from a single source form.
If you put a bunch of check
forms into the file, they are easily compiled using the usual process of compiling Lisp files. You'll get a compiled version of the checking code.
Using a function and EVAL
(better use COMPILE
) you would have deferred the source evaluation to a later time. It would also not be clear if it is interpreted or compiled. In case of compilation, you would then later get the compiler's checks.