Re: Assign delayed but fixed value
- To: mathgroup at smc.vnet.net
- Subject: [mg75211] Re: Assign delayed but fixed value
- From: Albert <awnl at arcor.net>
- Date: Fri, 20 Apr 2007 00:44:39 -0400 (EDT)
- References: <f079pm$47d$1@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; > The following does what I think you try to do. Note that the following code will return the same value for var even if param changes. This is unlikely what you want. var := If[ValueQ[param], var = Table[Random[Integer, {0, 3}], {param}], Indeterminate]; Here is a more elaborate version which behaves more reasonable concerning different values of param: varcache[p_]:=varcache[p]=Table[Random[Integer,{0,3}],{param}]; var := If[ValueQ[param], varcache[param],Indeterminate]; Still I wonder why you don't just use a function which accepts an argument, which would be much clearer code, I think... hth, albert