Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!ucsd!ucbvax!HPCLLAK.CUP.HP.COM!cary From: cary@HPCLLAK.CUP.HP.COM (Cary Coutant) Newsgroups: comp.lang.icon Subject: Generating variables Message-ID: <9011022303.AA26865@relay.hp.com> Date: 2 Nov 90 23:03:02 GMT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 22 The program would have worked but for a double bang -- you applied the bang operator within the procedure, and on the procedure call. Removing the latter yields a program that does what you were expecting. -Cary Coutant, HP Computer Language Lab procedure main () l := [1,2,3,4] every writes(!l, " ") write() # writes 1 2 3 4 every !l := 9 every writes(!l, " ") write() # writes 9 9 9 9 every p1(l) := 7 # no extra bang operator here every writes(!l, " ") write() end procedure p1(z) suspend !z end