|
[Date Index]
[Thread Index]
[Author Index]
Re: Named patterns forbidden in Except?
- To: mathgroup at smc.vnet.net
- Subject: [mg110506] Re: Named patterns forbidden in Except?
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Tue, 22 Jun 2010 06:59:17 -0400 (EDT)
- References: <hvkgvo$qce$1@smc.vnet.net>
On 20/06/10 08:46, Carlos C=E9sar de Ara=FAjo wrote:
> David Bailey wrote:
>
>>> I guess the point is that you could never use the name - because in your
>
>>> example, if x took a value, Except would fail to match by definition!
>
> Well, this is not a valid argument: I'm not using an isolated Except in a
> transformation rule. According to the documentation, "Except[c] is a
> pattern object which represents any expression except one that matches c."
> In particular, given a pattern patt, we should have, for all expressions
> expr,
>
> MatchQ[expr, Except[patt]] iff !MatchQ[expr,patt]
>
> But there are (many!) situations where a named patt is useful in
> !MatchQ[expr,patt]. Example: my definition of FunctionQ. That definition
> works with a named patt in MatchQ, so it should work with Except instead.
>
The name belongs to the scope of the rule, so for example:
In[2]:= MatchQ[7, x_Integer]; x
Out[2]= x
I do admit, the rule is a bit strange because it forbids constructions
like:
Except[x_Integer /; testQ[x]]
Anyway, the restriction was obviously put in deliberately, so it is
unlikely to become classed as a bug.
David Bailey
http://www.dbaileyconsultancy.co.uk
Prev by Date:
Re: Book?
Next by Date:
Re: Help me : Solve a simple PDE in Mathematica
Previous by thread:
Re: Named patterns forbidden in Except?
Next by thread:
Compiled function not working
|