Re: Assign delayed but fixed value

*To*: mathgroup at smc.vnet.net*Subject*: [mg75188] Re: [mg75168] Assign delayed but fixed value*From*: Carl Woll <carlw at wolfram.com>*Date*: Fri, 20 Apr 2007 00:32:52 -0400 (EDT)*References*: <200704190831.EAA04122@smc.vnet.net>

zac wrote: >Dear Group! > >My target is to define the value of 'var' in terms of the value of >'param'. The problem is that 'param' is introduced later than 'var', >and this time-sequence cannot be changed. However, I would like to >create 'var' such a way that IF 'param' is known, the value of 'var' >should be the same any time it is called. >Example code: > >In[1]:= >var = Table[Random[Integer,{0,3}],{param}]; >param = 3; > >>From In[1]:= Table::iterb : Iterator {param} does not have appropriate >bounds. More... > >In[3]:= >var > >Out[3]= >{1,1,3} > >In[4]:= >var > >Out[4]= >{0,3,1} > > >The Table::iterb message is a secondary matter, as the two 'var' >outputs do not equal, and this is my primary concern. Any idea how to >solve this task? Thanks in advance. > >Istvan > > > How about: In[1]:= var := (var = Table[Random[Integer, {0, 3}], {param}]) /; IntegerQ[param] In[2]:= var Out[2]= var In[3]:= param = 3 Out[3]= 3 In[4]:= var Out[4]= {1, 2, 1} In[5]:= var Out[5]= {1, 2, 1} Note that the definition of var won't change even if you change the value of param. Carl Woll Wolfram Researc

**References**:**Assign delayed but fixed value***From:*zac <replicatorzed@gmail.com>