BadAlgebra
- To: mathgroup at smc.vnet.net
- Subject: [mg20557] BadAlgebra
- From: William Fairchild <fairchiw at union.edu>
- Date: Sat, 30 Oct 1999 00:14:06 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Must we apply Evaluate[ ] to everything? Here is an example which shows that it's a good idea; the following command yields 2(x)+1 in an input cell: CellPrint[Cell[BoxData[RowBox[ {"2", RowBox[{RowBox[{"(", "x", ")"}], "+", "1"}]} ]], "Input"]] but this 2(x)+1 is not the same as one which is typed in, because when it is entered the output is 2(1+x). In other words we have an example of session with In[1]:=CellPrint[Cell[BoxData[RowBox[ {"2", RowBox[{RowBox[{"(", "x", ")"}], "+", "1"}]} ]], "Input"]] In[2]:= 2(x)+1 Out[2]:= 2(1+x) and today is not April 1st. This example arose in the course of normal typing and editing of Mathematica expressions, although in a more complicated situation; the above example is a distillation. Notice that if the aberrant 2(x)+1 is wrapped in Evaluate[] the preprocessor does the right thing and the output is correct. Evidently one must coax the preprocessor to transform the list {"2", RowBox[{RowBox[{"(", "x", ")"}], "+", "1"}]} into {RowBox[{"2", RowBox[{"(", "x", ")"}]}], "+", "1"} so that the kernel gets the right input. Almost any other minor perturbation also causes the preprocessor to kick in and "do the right thing". The question is: What other Front End glitches will cause wrong output? And can they all be prevented by use of Evaluate[] or other wrappings? Bill Fairchild <fairchiw at union.edu> Math. Dept. Union College, Schenectady, NY 518-388-6164