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)

```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?
>