Hi, Working in CLM with a .clm file, getting confused with lisp, and I was hoping I could get some help from lisp experts here.
I'm confused why collecting into a global list is not available from the second loop, in ex. 1. I'm wondering if I'm not understanding something about scope. Should the loops from ex. 1 be wrapped with something else like a "let" statement? I can access the global list by defining a function in ex. 2, but curious where I'm going wrong in ex. 1? ex. 1 (defvar mylist '(0.5 100.0 200.25 4000.0 1.0 0.33)) (defvar *test* '(nil)) (loop for i from 0 to 10 by 1 for xx in mylist collect (random-element mylist) into *test* finally (return *test*)) ) (loop for i from 0 to 10 by 1 for yy in *test* ;the randomized list above does not seem available as global here do (format t " ~A" yy) ) ------------------ ex. 2 (defvar mylist '(0.5 100.0 200.25 4000.0 1.0 0.33)) (defvar *test* '(nil)) (defun myfunc (somelist) (loop for i from 0 to 10 by 1 for xx in somelist collect (random-element somelist) into *test* finally (return *test*)) ) (loop for i from 0 to 10 by 1 for yy in (myfunc mylist) do (format t " ~A" yy) )
_______________________________________________ Cmdist mailing list Cmdist@ccrma.stanford.edu http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist