Join evaluates its second argument, but not its first argument. Seems inconsistent. Maybe it's that way because the first argument should not be evaluated yet because it might not make any sense until it is joined onto something. Or could it be that since the result of the join is going to be evaluated anyway, it is more efficient to take out one reduce step on the first argument, which makes the code more readable at the same time...(?) Just hunches. Anton. [EMAIL PROTECTED] wrote: > >> join [print 123][print "hello"] > hello > == [print 123 unset] > > hum.. > Volker