newLISP Fan Club

Forum => Whither newLISP? => Topic started by: newdep on June 16, 2007, 12:57:07 PM

Title: Question/request?
Post by: newdep on June 16, 2007, 12:57:07 PM
Hi Lutz,



Im wondering if the following is possible in newlisp...

I could not find a function that does this..



i.e.



I have a list -> (setq A '( (+ x 1) (- x 2) ))



Now I want to COPY/MIRROR that list to B..

But in this manner that everything that is changed inside List A also will be changed in list B.



This means that list B is a Symbolic-Link/Mirror to list A..

everything changes in A changes in B..

(not reverse nessesarly)





>(setq A '( (+ x 1) (- x 2) ))

( (+ x 1) (- x 2) )



>(mirror A B)

( (+ x 1) (- x 2) )



> B

( (+ x 1) (- x 2) )



>(pop A 0)

( (- x 2) )



> B

( (- x 2) )







Norman.
Title:
Post by: Lutz on June 16, 2007, 01:56:15 PM
as contexts are passed by reference you could do the following:


> (set 'A:var '((+ x 1) (- x 2)))
((+ x 1) (- x 2))
> (set 'B A)
A
> A:var
((+ x 1) (- x 2))
> B:Var
nil
> (pop A:var)
(+ x 1)
> B:var
((- x 2))
>


Lutz
Title:
Post by: newdep on June 16, 2007, 02:27:54 PM
aaaaaa look... I realy must get starting on contexts now..because its

something i never use inside newlisp... Great example...thanks!