[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

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?