(block alpha (return-from alpha) 1) NIL
(block alpha (return-from alpha 1) 2) 1
(block alpha (return-from alpha (values 1 2)) 3) 1, 2
(let ((a 0))
(dotimes (i 10) (incf a) (when (oddp i) (return)))
a) 2
(defun temp (x)
(if x (return-from temp '))
44) TEMP
(temp nil) 44
(temp t) DUMMY
(block out
(flet ((exit (n) (return-from out n)))
(block out (exit 1)))
2) 1
(block nil
(unwind-protect (return-from nil 1)
(return-from nil 2)))
2
(dolist (flag '(nil t))
(block nil
(let ((x 5))
(declare (special x))
(unwind-protect (return-from nil)
(print x))))
(print 'here))
5
HERE
5
HERE
NIL
(dolist (flag '(nil t))
(block nil
(let ((x 5))
(declare (special x))
(unwind-protect
(if flag (return-from nil))
(print x))))
(print 'here))
5
HERE
5
HERE
NIL
The following has undefined consequences because the block form
exits normally before the return-from form is attempted.
(funcall (block nil #'(lambda () (return-from nil)))) is an error.