Re: Re: Horse Race Puzzle (fwd)
- To: mathgroup at smc.vnet.net
- Subject: [mg9303] Re: [mg9259] Re: [mg9162] Horse Race Puzzle (fwd)
- From: Olivier Gerard <jacquesg at pratique.fr>
- Date: Mon, 27 Oct 1997 02:47:14 -0500
- Sender: owner-wri-mathgroup at wolfram.com
Hello Robert, Very nice rule based programming. But the reason Mathematica is "ignoring" the Flatten is that you use an immediate rule (->) which makes it apply the Flatten to the Pattern when evaluating your code. You should use a delayed one (:>) (this is not a smilie, or is it ?). Olivier At 07:01 +0200 97.10.24, Robert Pratt wrote: > I omitted "{x," in the second replacement rule, which should read > "->{x,Flatten[{y,n}],z}}". The corrected version appears below. > > > The solutions can be computed recursively using pattern matching as > > follows: > > > > HorseRaces[1]={{1}}; > > HorseRaces[n_]:=HorseRaces[n]= > > Join[ > > Flatten[Map[ReplaceList[#,{x___,y___}->{x,n,y}]&,HorseRaces[n-1]],1], > > Flatten[ReplaceList[#,{x___,y_,z___}->{x,Flatten[{y,n}],z}]&, > > HorseRaces[n-1]],1] > > ] > > > > Unfortunately, Mathematica seems to ignore the Flatten[{y,n}] command, > > returning > > {y,n} unflattened. However, this only gives some unambiguous extra > > nesting in the solutions.