[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: STACK-LET (Version 1)
While I would like very much to find some way to express dynamic extent within
the language, I'm
unhappy with either (declare (dynamic-value ...)) or stack-let for two reasons:
a) it is disturbing to introduce a construct within which a casual change of
(CONS X (LIST Y Z)) to
(LIST X Y Z) could introduce a serious bug (e.g., if the tail were stashed away
somewhere.)
b) the construct really only allows dynamic extent on one-level structures . If
you wanted to
create a copy of (A (B C) (D E (F G)))
you would have to say something like
(stack-let* ((part2 (list 'b 'c)) (part3c (list 'f 'g)) (part3 (list 'd 'e
part3c)) ((whole-thing (list 'a part2 part3))) ...)
Your proposal did not mention objects other than lists; what of DEFSTRUCT or
CLOS instances?