特殊的操作符允許對多個 Lisp 表單進行分組(如隱式 progn),並且它還使用名稱來命名塊。當評估塊中的表單時 可以使用特殊運算子 return-from 離開塊。例如:

(block foo
  (print 'hello)     ; evaluated
  (return-from foo)
  (print 'goodbye))  ; not evaluated
;;=> NIL

return-from 也可以提供返回值:

(block foo
  (print 'hello)     ; evaluated
  (return-from foo 42)
  (print 'goodbye))  ; not evaluated
;;=> 42

當一大塊程式碼具有有意義的名稱或巢狀塊時,命名塊很有用。在某些情況下,只有早期從區塊返回的能力才是重要的。在這種情況下,你可以使用 nil 作為塊名稱,然後返回返回就像返回一樣,除了塊名稱總是為零

注意:隨附的表單不是頂級表單。這與 progn 不同,其中頂級 progn 形式的封閉形式仍被視為頂級形式。