Tagbody

對於組表單中的大量控制, tagbody 特殊運算子可能非常有用。一個內部的形式 tagbody 形式要麼是去標籤 (這只是符號或整數)或執行的形式。在標籤體內go 特殊運算子用於將執行轉移到新位置。這種型別的程式設計可以被認為是相當低階的,因為它允許任意執行路徑。以下是作為標記實體實現 for 迴圈時的詳細示例 :

(let (x)               ; for (x = 0; x < 5; x++) { print(hello); }
  (tagbody
     (setq x 0)
   prologue
     (unless (< x 5)
       (go end))
   begin
     (print (list 'hello x))
   epilogue
     (incf x)
     (go prologue)
   end))

雖然 tagbodygo 不常用,可能是由於“GOTO 被認為是有害的”,但在實現複雜的控制結構(如狀態機)時可能會有所幫助。許多迭代構造也擴充套件為隱式標記體。例如, dotimes 的主體被指定為一系列標籤和形式。