RE: Re: ValueQ
- To: mathgroup at smc.vnet.net
- Subject: [mg34376] RE: [mg34340] Re: ValueQ
- From: "DrBob" <majort at cox-internet.com>
- Date: Fri, 17 May 2002 06:31:02 -0400 (EDT)
- Reply-to: <drbob at bigfoot.com>
- Sender: owner-wri-mathgroup at wolfram.com
Here's a more direct method:
Position[DownValues[a], HoldPattern[a[#]]] != {} & /@ {1, 2}
{True,False}
This is what I'd have expected ValueQ to do, if I hadn't seen the
examples and read the fine print.
Bobby
-----Original Message-----
From: Jens-Peer Kuska [mailto:kuska at informatik.uni-leipzig.de]
To: mathgroup at smc.vnet.net
Subject: [mg34376] [mg34340] Re: ValueQ
Hi,
Table[ ValueQ @@ (Hold[a[ii]] /. ii -> i), {i, 1, 2}]
Regards
Jens
rainer wrote:
>
> Hi,
>
> I#m searching for a simple workaround of the following behaviour.
>
> For the symbol 'a' I've defined
>
> In[1]:=
> a[1] = 2;
>
> When I evaluate ValueQ for a defined and for not a defined expression
I
> get what I expect:
>
> In[3]:=
> ValueQ[a[1]]
> Out[3]=
> True
>
> In[4]:=
> ValueQ[a[2]]
> Out[4]=
> False
>
> But when I evaluate ValueQ e. g. within a Table I always get True:
>
> In[5]:=
> Table[ValueQ[a[i]], {i, 1, 2}]
> Out[5]=
> {True, True}
>
> The 2nd 'True' is because 'a[i]' is not equal to 'a[2]'. A first
> solution to get the expected result is
>
> In[6]:=
> Table[ToExpression@("ValueQ[a[" <> ToString[i] <> "]]"), {i, 1, 2}]
> Out[6]=
> {True, False}
>
> Does anybody know something better?
>
> Rainer Gruber
> JOHANNES KEPLER UNIVERSITY LINZ
> Institute of Experimental Physics
> Atomic Physics and Surface Science