Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: Named Patterns in Switch

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48954] Re: [mg48945] Named Patterns in Switch
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 25 Jun 2004 02:58:18 -0400 (EDT)
  • References: <200406240936.FAA28070@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 24 Jun 2004, at 18:36, David Park wrote:

> Dear MathGroup,
>
> Here is an attempted routine using Switch that does not work.
>
> foo[expr_] :=
>  Switch[expr,
>         (a_.)*x^(n_), a,
>         (a_.)*y^(n_), n]
>
> foo[3*x^3]
> a			(I was hoping for 3)
>
>
> Switch uses patterns, but any named patterns are useless. So the a in 
> the third argument in Switch has nothing to do with the a_. in the 
> second argument.
>
> Is there some Mathematica construction that will test successive 
> patterns with names, do a calculation with the first match and use the 
> names in the patterns?
>
> David Park
> djmp at earthlink.net
> http://home.earthlink.net/~djmp/
>
>

How about just:


foo[expr_] :=
  Switch[expr,
         (a_.)*x^(n_), Replace[expr,(a_.)*x^(n_)->a],
         (a_.)*y^(n_),Replace[expr,(a_.)*y^(n_)-> n]]


foo[3*x^3]

3

?


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


  • Prev by Date: Re: Named Patterns in Switch
  • Next by Date: Re: Named Patterns in Switch
  • Previous by thread: Re: Named Patterns in Switch
  • Next by thread: Re: Named Patterns in Switch