MathGroup Archive 2003

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

Search the Archive

Re: Re: Extracting Terms From a List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44206] Re: [mg44193] Re: [mg44183] Extracting Terms From a List
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Tue, 28 Oct 2003 05:53:12 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

This question intrigued me so I thought some more about it. Here is a 
more complicated function than before, which however does much more!

fun[l_] := Flatten[Cases[l, s:_Integer | _?( !FreeQ[#1, _^2] & ) ->
      Switch[s, _Integer, s, _^2, s, _?( !FreeQ[#1, _^2] & ), fun[s]]]]


for example:

fun[{3, Sqrt[2], (x + y)^2, Exp[x^2 + y^2 + 1]}]


{3, (x + y)^2, 1, x^2, y^2}

Andrzej Kozlowski
Yokohama, Japan
http://www.mimuw.edu.pl/~akoz/



On Sunday, October 26, 2003, at 01:41 PM, Andrzej Kozlowski wrote:

>
> On Saturday, October 25, 2003, at 07:26 PM, Bruce W. Colletti wrote:
>
>>
>> How would I cull integers and squared terms from {3, Sqrt[2], (x+y)^2,
>> x+y^2}?   The desired output is {3, (x+y)^2, y^2}.  Unfortunately:
>>
>> Cases[{3, Sqrt[2], (x+y)^2, x+y^2}, _Integer | _^2]
>>
>> returns {3, (x+y)^2} .
>>
>> Thankx.
>>
>> Bruce
>>
>>
>>
>
> Probably you either have to use a rather elaborate pattern or apply
> Cases twice:
>
>
>
> Join[Cases[{3, Sqrt[2], (x + y)^2, x + y^2}, _Integer],
>    Cases[{3, Sqrt[2], (x + y)^2, x + y^2}, _^2, {1, 2}]]
>
>
> {3, (x + y)^2, y^2}
>
>
> Andrzej Kozlowski
> Yokohama, Japan
> http://www.mimuw.edu.pl/~akoz/
>
>
>


  • Prev by Date: Re: ProductLog[-Pi/2]
  • Next by Date: Re: errors while picking random numbers under constraint and in loop also
  • Previous by thread: RE: Extracting Terms From a List
  • Next by thread: imposing parameter assumptions