Re: What am I doing wrong?

*Subject*: [mg2192] Re: What am I doing wrong?*From*: ianc (Ian Collier)*Date*: Fri, 13 Oct 1995 06:24:51 GMT*Approved*: usenet@wri.com*Distribution*: local*Newsgroups*: wri.mathgroup*Organization*: Wolfram Research, Inc.*Sender*: daemon at wri.com ( )

In article <45d24c$63m at ralph.vnet.net>, JSNW at msg.ti.com (Jason Welter) wrote: > Kemp[z_] := If[z>5,Kemp=gft[z] + 21,Kemp=gft[z] - 21] > gft[z_] := If[z>5,gft=z^2 + 2,gft=z^2 - 2] > Kemp[4] > > SetDelayed::write: Tag Integer in (-14)[z_] is Protected. > $Failed > SetDelayed::write: Tag Integer in 7[z_] is Protected. > $Failed > (-14)[4] I can't reproduce exactly what you are seeing, but I think that your assignments to Kemp and gft withing your definitions are redundant and problematic. I only see a problem when I call Kemp for the second time. Changing the definition slightly (Kemp2 and gft2 below) eliminates the problem. In your example in calling Kemp you then set the symbol Kemp to a certain value (after you defined the function) and this value is used when you attempt to call the function Kemp for the second time. In[1]:= Kemp[z_] := If[z>5,Kemp=gft[z] + 21,Kemp=gft[z] - 21] In[2]:= gft[z_] := If[z>5,gft=z^2 + 2,gft=z^2 - 2] In[3]:= Kemp[4] Out[3]= -7 In[7]:= Kemp[5] Out[7]= (-7)[5] In[4]:= Kemp2[z_] := If[z>5,gft2[z] + 21,gft2[z] - 21] In[5]:= gft2[z_] := If[z>5,z^2 + 2,z^2 - 2] In[6]:= Kemp2[4] Out[6]= -7 In[8]:= Kemp2[5] Out[8]= 2 --Ian ----------------------------------------------------------- Ian Collier Technical Sales Support Wolfram Research, Inc. ----------------------------------------------------------- tel:(217)-398-0700 fax:(217)-398-0747 ianc at wri.com Wolfram Research Home Page: http://www.wri.com/ -----------------------------------------------------------