|
|
|
|
|
by aidenn0
30 days ago
|
|
I didn't try macroexpanding it yet, but when I make the 9 a runtime-parameter, I eventually get a stack-overflow with SBCL not TCO-ing the "H" binding in labels. The comments make me think this is ported from scheme, which has precise TCO rules. [edit] macroexpanded: (LABELS ((H-37 (US-38)
(IF (NULL US-38)
NIL
(LET ((FILE (CAR US-38)) (US1-39 (CDR US-38)))
(LABELS ((H-43 (US-44)
(IF (NULL US-44)
(H-37 US1-39)
(LET ((RANK (CAR US-44)) (US1-45 (CDR US-44)))
(CONS (FORMAT NIL "~a~a" FILE RANK) (H-43 US1-45))))))
(H-43 RANKS))))))
(H-37 FILES))
|
|