MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

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/


  • Prev by Date: Re: Problem with using /.
  • Next by Date: Re: Problems with NMaximize.
  • Previous by thread: Re: ReplaceAll (/.)
  • Next by thread: Re: ReplaceAll (/.)