Re: Function defined with If
- To: mathgroup at smc.vnet.net
- Subject: [mg71384] Re: [mg71338] Function defined with If
- From: Julian Aguirre <julian.aguirre at ehu.es>
- Date: Thu, 16 Nov 2006 00:53:31 -0500 (EST)
- References: <NDBBJGNHKLMPLILOIPPOMEBNFEAA.djmp@earthlink.net>
David,
El 15/11/2006, a las 18:18, David Park escribió:
> I'm not quite certain what you want to do. Suppose that a and b are
> complicated expressions of x and y. Do you want f to be a function
> of x and
> y, or of a and b? I am going to assume a function of x and y.
That is exactly what I intended.
>
> Then note the Attributes of If.
>
> Attributes[If]
> {HoldRest, Protected}
>
> So in the f definition we have to evaluate the second and third
> arguments of
> If.
>
> a = x; b = y;
> f[x_, y_] = If[a < b, Evaluate@a, Evaluate@b]
> If[x < y, x, y]
Thank you very much for this solution. It is exactly what I need. I
have tried it in my much more complicated original problem, and it
works.
Julián
>
> From: Julian Aguirre [mailto:julian.aguirre at ehu.es]
>
> Dear group,
>
> I am trying to define a function of the variables x, y through other
> quantities depending on x and y and the function If. A minimal example
> is
>
> In[1]:a = x;
> b = y;
> f[ x_, y_ ] = If[ a < b, a, b ]
> Out[3]If[ x < y, a, b ]
>
> How can I force Mathematica to return If[ x < y, x, y ], as I thought
> it would?
>
> Thaks in advance,
>
> Julián Aguirre
>
>