如果您使用的是 SLIME,您可以M-xslime-macroexpand-all
在该点位于块形式的最后一个括号上时执行此操作。你会得到这样的东西:
(BLOCK NIL
(SETQ X (CAR N)) ; save the first element in X, while declaring
; a special variable by that name
(SETQ N (CDR N)) ; set N to the second cons of the list
(BLOCK NIL
(TAGBODY
#:G892
(PROGN
(< X 100) ; Useless, has no impact on your code
(SETQ N (CDR N)) ; set N to the third cons of the list
(IF (EQ X 2)
(RETURN-FROM NIL (EQ (CAR N) 12))) ; return from the innermost block NIL
; however, since there's no more code in the
; outermost block NIL, this will return from
; it too.
(SETQ X (1- X))) ; decrement value in X. It may happen so by
; chance that, if initially X was larger than 2
; the above condition will trigger
(GO #:G892))))
也许,如果你解释了你想要做什么,你会得到更好的运气,这个功能非常错误,以至于它在乞求这个问题。