Correction: Function with attributes Flat and OneIdentity
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1112] Correction: Function with attributes Flat and OneIdentity
- From: villegas (Robert Villegas)
- Date: Mon, 15 May 1995 00:41:42 -0400
- Organization: Wolfram Research, Inc.
I wrote: > I do remember seeing one or two strange things when I was in tech support, > though (regarding Flat and OneIdentity I think), so there might be points > that I'll miss. I did miss a point all right, but it was because I forgot about the usage in the page after the one I cited in Maeder! This statement was wrong: > It [OneIdentity] affects only matching of other rewrite rules, and it > doesn't play alone, it is really there to specify which way Flat should > go in one case. The part about it not playing alone is wrong. As Maeder says on p. 151, you can use OneIdentity with Default to use patterns with optional arguments, like x_ + y_. for Plus. Here's the example from Maeder: In[1]:= Attributes[q] = OneIdentity Out[1]= OneIdentity In[2]:= Default[q] = 18 Out[2]= 18 In[3]:= g[ q[x_, y_.] ] := {x, y} In[4]:= g[a] Out[4]= {a, 18} Robby Villegas