Re-evaluation of Conditional expressions
- To: mathgroup at smc.vnet.net
- Subject: [mg3460] Re-evaluation of Conditional expressions
- From: quinton at irisa.fr (Patrice Quinton)
- Date: Sat, 9 Mar 1996 00:59:03 -0500
- Organization: IRISA, Campus de Beaulieu, 35042 Rennes Cedex, FRANCE
- Sender: owner-wri-mathgroup at wolfram.com
While teaching Mathematica, I found the following quite strange behaviour of Conditional expressions in Mathematica. Define symbol y as follows: y = If[x,1,2] (* Then set x to True and revaluate y *) x=True;y (* as expected, the answer is 1 *) (* Now, set x to z, a fresh symbol, and evaluate y *) Clear[x,z];x=z;y (* The result is If[x,1,2] *) (* Finally, set z to True, and evaluate y *) z=True;y The result is still If[x,1,2], although a re-evaluation of x gives True, as expected. The only way to get a re-evaluation of y is to use the function Update: Update[];y which gives the result 1. In summary, it seems that If is re-evaluated only if the expression that assigned to x has changed, and not when the value of x has changed. Is there a special reason for this? Any way to circumvent this problem? Thanks. Patrice Quinton Irisa, Campus de Beaulieu, University of Rennes 1, France Phone: 99 84 71 85, Fax: 99 84 71 71 ==== [MESSAGE SEPARATOR] ====