Re: Defining a flat, orderless, one-identical function?[2]
- To: mathgroup at smc.vnet.net
- Subject: [mg28130] Re: Defining a flat, orderless, one-identical function?[2]
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Sat, 31 Mar 2001 02:59:00 -0500 (EST)
- References: <200103290824.DAA03033@smc.vnet.net> <B6E8D3A8.BC10%andrzej@platon.c.u-tokyo.ac.jp> <9a1l0p$aav@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Another way of stopping cycling - don't use x_ . ClearAll[f] SetAttributes[f,{Flat,OneIdentity}] f[x__]/;Length[{x}]==1:=x f[a] a f[a,b] f[a,b] The pattern matcher does not convert f[a,b ] to f[f[a,b]] to match f[x__]. -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "Ralph Benzinger" <mma-l at endlos.net> wrote in message news:9a1l0p$aav at smc.vnet.net... > On March 29, you wrote: > > This is a rather complex issue tha thas been already discussed in some > > detail a number of times so you shoudl search the archives to understand > > more. > > Thanks for pointing this out; I admit I did a shoddy job in > searching the archives. I've now found a series of article from > January 2000 that pretty much settle the issue once and for all. > There also was an inquiry from 1995 and an interesting solution > from Wolfram's support staff that suggested removing the Flat > attribute and adding definitions that would unfold nested function > calls manually. > > > Here is just one solution to your problem, the main idea of which, if > > I remeber correctly, was once suggested by Carl Woll: [...] > > > > In[2]:= > > (x_max/;Length[Unevaluated[x]]==1):=Hold[x][[1,1]] > > Great! This ingenious rule works like a charm. It's quite a hack, > though, isn't it? ;-) > > Ralph > > -- > Ralph Benzinger "This is my theory, it is mine, I own it, > Cornell Univeristy and what it is, too." -- Ann Elk (Mrs.) >
- References:
- Defining a flat, orderless, one-identical function?
- From: Ralph Benzinger <mma-l@endlos.net>
- Defining a flat, orderless, one-identical function?