Re: Re: ReplaceAll (/.)
- To: mathgroup at smc.vnet.net
- Subject: [mg69234] Re: [mg69203] Re: [mg69197] ReplaceAll (/.)
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 3 Sep 2006 01:39:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Because "anything" applied to an atomic object returns the object: Apply[f,x] x List has nothing to do with this. Andrzej Kozlowski On 2 Sep 2006, at 08:12, Chris Chiasson wrote: > It would be nice to know why list applied to an atomic object isn't an > error. Anyone? > > On 9/1/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote: >> >> On 1 Sep 2006, at 11:41, Bruce Colletti wrote: >> >> > Re Mathematica 5.2.0.0. >> > >> > Why doesn't: >> > >> > (a b) /. x_Times -> List @@ x >> > >> > return {a,b}? My (flawed) reasoning is that a b has form Times >> > [a,b], and so x matches to Times[a,b]. List@@x replaces Times with >> > List to yield List[a,b], or {a,b}...or so it would seem. >> > >> > The explanation is somehow linked to the fact that: >> > >> > (a b) /. x_Times :> List @@ x >> > >> > returns {a,b}, but I don't see why this works but not the above. >> > >> > Although List@@(a,b) returns {a,b}, I want to use the above >> > ReplaceAll function (this example here is taken from a larger >> > problem). >> > >> > Thankx. >> > >> > Bruce >> > >> >> >> You need to use RuleDelayed (:>) rather than Rule (->) because, if >> you use just Rule, List@@x is first evaluated and gives: >> >> >> >> List@@x >> >> >> x >> >> So all you are actually doing is >> >> (a b) /. x_Times -> x >> >> Andrzej Kozlowski >> >> > > > -- > http://chris.chiasson.name/