Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

Re: Scoping of pattern names

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122746] Re: Scoping of pattern names
  • From: Rui Rojo <rui.rojo at gmail.com>
  • Date: Tue, 8 Nov 2011 07:17:53 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111071053.FAA03805@smc.vnet.net>

Yeah, it helps. For some reason I only use "?" for predicates or very
simple functions, and got used to using /; for more complex checking. But
it all works fine doing like you suggested for simple cases. I'll just have
to start indexing with #[[]] for more complex behaviour like

h[p_][a_, b_, c_, head[e_, f_]]/;Divisible[p, e] && b===f
h[_][_,_, _, head[_, _]]?(Divisible[#[[0, 1]], #[[4, 1]]] && #[[2]]===#[[4,
2]])&

Can get ugly at times but...whatever works. Thanks

On Mon, Nov 7, 2011 at 8:58 AM, Bob Hanlon <hanlonr357 at gmail.com> wrote:

> I'm not sure what you are trying to do. This may help.
>
> pat = _?(# == 8 &);
>
> Cases[Range[20], 2 | pat | _?OddQ]
>
> {1, 2, 3, 5, 7, 8, 9, 11, 13, 15, 17, 19}
>
>
> Bob Hanlon
>
> On Mon, Nov 7, 2011 at 5:53 AM, Rui <rui.rojo at gmail.com> wrote:
> > My goal:
> > store a pattern in a variable for future use
> >
> > My problem:
> > if the pattern I stored has a pattern name in it, (like i_/;i=8),
> > and I use it later to build a new pattern in which I use the stored
> pattern twice, it thinks its the same name (i)
> >
> > My investigation:
> > So far, couldn't find any way to scope pattern's names in a useful way.
> > Module and With, refuse to scope a pattern name that's somewhere on the
> left hand side of a condition contained in them.
> >
> >
> > Sure, I probably haven't tried much yet to build what I want with hard
> expression manipulation, but... I found my objective neat simple and
> useful...
> > I would like to know if there's a proper way to do this, or to achieve
> my objective somehow else. And, I'd also enjoy knowing why such a
> resistance to scope pattern names...
> >


  • Prev by Date: Re: How to evaluate parts of an expression, but not other parts?
  • Next by Date: Re: Scoping of pattern names
  • Previous by thread: Re: Scoping of pattern names
  • Next by thread: Re: Scoping of pattern names