The 'return' special form allows the return of an arbitrary value at
arbitrary times within 'block' constructs like
If 'return' is used without being within a valid 'block' construct, an error is generated:
error: no target for RETURN
(prog (i) ; PROG form (print i) (RETURN "foo") (print j)) ; prints NIL returns "foo" (dotimes (i 10) (if (eql i 5) (RETURN 20) (princ i))) ; prints 01234 returns 20 (prog1 (print "hi") (RETURN "foo")) ; prints "hi" ; error: no target for RETURN (return 9) ; error: no target for RETURN
See the
return
special form in the