Re: RE: Re: ValueQ
- To: mathgroup at smc.vnet.net
- Subject: [mg34411] Re: [mg34376] RE: [mg34340] Re: ValueQ
- From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
- Date: Sat, 18 May 2002 03:51:34 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
The purpose of ValueQ is to check if a symbol is a "value", which means not just a DownVlaue, but also OwnVlaue, SubValue and so on, e.g.: In[1]:= a/:f[a]=2; In[2]:= f[b]=3; In[3]:= c=5; In[4]:= ReleaseHold[Map[ValueQ,Hold[{f[a],f[b],f[c],c,d,f[d]}],{2}]] Out[4]= {True,True,True,True,False,False} Andrzej Kozlowski Toyama International University JAPAN http://platon.c.u-tokyo.ac.jp/andrzej/ On Friday, May 17, 2002, at 07:31 PM, DrBob wrote: > 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: [mg34411] [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 > > > > > >