Re: UpValues for Blank[foo]
- To: mathgroup at smc.vnet.net
- Subject: [mg54267] Re: UpValues for Blank[foo]
- From: Maxim <ab_def at prontomail.com>
- Date: Mon, 14 Feb 2005 21:51:22 -0500 (EST)
- References: <email@example.com> <200502110833.DAA09117@smc.vnet.net> <firstname.lastname@example.org>
- Sender: owner-wri-mathgroup at wolfram.com
On Sat, 12 Feb 2005 07:18:51 +0000 (UTC), Josef Karthauser
<joe at tao.org.uk> wrote:
> I wonder what's I'm doing wrong. I'm trying to change the upvalues of a
> function with respect to Blank so as to have it dynamically changed
> into something else, e.g.
> := F /: Blank[F] := _?FQ
> where FQ[F] returns true, and false on anything else, but although
> installed it doesn't appear to work.
> To simplify the example I wondered whether I could define my own _F to
> behave like _Integer, i.e.
> := F /: Blank[F] := Blank[Integer]
> which appears to be in place as a rule:
> := ?? F
> _F := _Integer
> but doesn't work:
> := _F // FullForm
> I thought that maybe wrapping HoldPattern around the Blank[F] in the
> upvalue rule might have fixed it, but it doesn't.
> Is there some special handling for Blank within mathematica? Can I
> circumvent it somehow?
It just shows that assignments to patterns have special meaning, and also
that _F doesn't match _F (MatchQ[_F, _F] gives False) because _F has head
Blank, not F. After the assignment _F = 0 you will have F, F, F[1, 2]
and so on evaluate to 0, but not _F itself. You can use Verbatim:
Verbatim[_F] ^= _Integer;
m.r at inbox.ru
Prev by Date:
Re: rules and lists
Next by Date:
Axes in ShowGraph
Previous by thread:
UpValues for Blank[foo]
Next by thread:
precision of numbers