Re: MakeExpression
- To: mathgroup at smc.vnet.net
- Subject: [mg33639] Re: MakeExpression
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 4 Apr 2002 19:39:59 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <a8g2di$b0t$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, a_Plus in your definition is nonsense. A head Plus would require, that a *is* already an expression, but that can't be the case, because MakeExpression[] is called to *make* the expression. A RowBox[] *can* only have strings/boxes in it's list argument and MakeExpression[ RowBox[{"\[FilledCircle]", "[", b__, "]"}], StandardForm] := MakeExpression[RowBox[{"{", b, "}"}], StandardForm] will parse \[FilledCircle][1, 2, 3, 4] inputs as list {1, 2, 3, 4} *and* has a pattern b__ Hers is an example MakeExpression[ RowBox[{RowBox[{"(", a_, ")"}], "[", c___, "]"}], fmt_:StandardForm] := MakeExpression[RowBox[{"\[FilledCircle]", "[", c, "]"}], StandardForm] that will tranform any combination of (anything)[aSequence] to \[FilledCircle][sequence] Regards Jens Dustin Vink wrote: > > Dear Reader, > > Consider the following Mathematica problem. How does one incorporate > pattern matching conditions with the command MakeExpression? > > The following does NOT work: > > MakeExpression[RowBox[{a_Plus, "[", b__, "]"}], StandardForm] := > MakeExpression[a, StandardForm] > > Any form of condition used at the lhs seems to be ignored.