Re: variable problems
- To: mathgroup at smc.vnet.net
- Subject: [mg9545] Re: [mg9512] variable problems
- From: jpk at max.mpae.gwdg.de
- Date: Thu, 13 Nov 1997 01:40:09 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
at first in
f[x_,y_]:= ..
is *not*, NOT a parameter of a function x_ is a pattern and total
different
from a function parameter. It mix the pattern matching totaly up if
You
assign a value to it. You can still use a local variable.
f[x_,y_]:=
Module[
{xx=x, a1, a2, a3},
a1=x+y;
xx=1; (* this will be ok *)
];
A pattern is assigned dynamical during Mathematica evaluation process
and it is not a real variable it stands for an arbitarry expression. It
is clear that You can not assign the value 1 to any expression.
If You want change the value of x as a side effect of the function
evaluation You can do the following
SetAttributes[test,HoldAll]
test[x_Symbol,y_]:=Module[{z},
z=x+y;
(x=1)
]
Hope that helps
Jens
> Hello,
> I am I wrote a package on mathematica for strain computations and
> diagrams in mechanics but I have a problem.
>
> Does anyone know how can I modify the value of a parameter of a
> function inside the declaration of the function? Here is an example:
>
> f[x_,y_]:=Module[
> {a1,a2,a3},
> a1=x+y;
> x=1; <------- this line causes an error message ];
>
> Note that I could use a local variable a1 for this putting a line
> a1=x;a1=1; but because of the complexity of the source code i wrote ,
> it's not possible to rewrite every line of code.
>
>
> Thanks you..
>
> If it is possible send me this answer to my email: mtousis at rodopi.cc.du
>
> Manolis Toussis
> Student of the Civil Engineer Department of Democritus University Of
> Thrace.
>