MathGroup Archive 2011

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

Search the Archive

Re: Scoping of pattern names

  • To: mathgroup at
  • Subject: [mg122740] Re: Scoping of pattern names
  • From: Bob Hanlon <hanlonr357 at>
  • Date: Tue, 8 Nov 2011 07:16:48 -0500 (EST)
  • Delivered-to:
  • References: <>

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> 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: NETLink vs LibraryLink for calling an external program
  • Next by Date: Re: How to evaluate parts of an expression, but not other parts?
  • Previous by thread: Scoping of pattern names
  • Next by thread: Re: Scoping of pattern names