Re: "a[A_,B_] :=" Does not assign variables properly. Why?
- To: mathgroup at smc.vnet.net
- Subject: [mg36151] Re: [mg36141] "a[A_,B_] :=" Does not assign variables properly. Why?
- From: BobHanlon at aol.com
- Date: Fri, 23 Aug 2002 21:34:40 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 8/23/02 1:16:57 AM, jwelter at sawtek.com writes:
>Here's a piece of a conversion I had with Mathematica.
>Why is "a[A_,B_] := LinearSolve[X,Y][[1]]" not giving
>me the function I expect?
>
>In[261]:= X = {{0,0,0,1},{1,0,0,1},{0,1,0,1},{1,1,1,1}};
>In[262]:= Y = {A,B,C,D};
>In[263]:= LinearSolve[X,Y]
>Out[263]= {-A+B,-A+C,A-B-C+D,A}
>In[264]:= LinearSolve[X,Y][[1]]
>Out[264]= -A+B
>In[265]:= a[A_,B_] := LinearSolve[X,Y][[1]]
>In[266]:= a[1,3]
>Out[266]= -A+B
>
>The output above is not what I want. I want "2". Here's
>what I expect:
>
>In[267]:= a[A_,B_] := -A+B;
>In[268]:= a[1,3]
>Out[268]= 2
>
>This output is what I expect. What is the difference between
>the two?
X={{0,0,0,1},{1,0,0,1},
{0,1,0,1},{1,1,1,1}};
Y={A,B,C,D};
a[A_,B_]:=
LinearSolve[X,Y][[1]];
?a
Global`a
a[A_, B_] := LinearSolve[X,Y][[1]]
Note that the RHS of the stored definition is not a
function of the arguments. Now add Evaluate to RHS
a[A_,B_]:=
Evaluate[LinearSolve[X,Y][[1]]];
?a
Global`a
a[A_, B_] := -A + B
a[1,3]
2
Bob Hanlon
Chantilly, VA USA