Re: function's local constants interdependence
- To: mathgroup at smc.vnet.net
- Subject: [mg69613] Re: function's local constants interdependence
- From: dimmechan at yahoo.com
- Date: Sun, 17 Sep 2006 22:45:43 -0400 (EDT)
- References: <eejaql$40m$1@smc.vnet.net>
Hi Igor.
You should use Block.
Clear["Global*"]
ff[x_, y_] := Block[{a = x, b = 2*a}, {a, b}]
ff[x, y]
{x, 2*x}
You can also execute the following commands to see the difference.
Clear["Global*"]
ff[x_, y_] := With[{a = x, b = 2*a}, {a, b}]
Trace[ff[x, y], TraceOriginal -> True]
Clear["Global*"]
ff[x_, y_] := Block[{a = x, b = 2*a}, {a, b}]
Trace[ff[x, y], TraceOriginal -> True]
Clear["Global*"]
ff[x_, y_] := Module[{a = x, b = 2*a}, {a, b}]
Trace[ff[x, y], TraceOriginal -> True]
Regards
Dimitris Anagnostou
Î?/Î? rych ÎγÏ?αÏ?ε:
> Could someone please help me find a decent way to have local constants
> defined using one another in order?
> Simple "With[" doesn't work:
>
> Clear[a,b,x,y]
> ff[x_,y_]:=With[{a=x, b=2*a},{a,b}]
> ff[x,y]
> > {x,2 a}
>
> where I'd like it be >{x, 2 x}. I suspect it would work with "Module["
> but I especially wanted them to be constants.
>
> Do I have to nest With[ ? Or is there a prettier way?
> Thanks
> Igor