Re: Re: RE: Re: ValueQ
- To: mathgroup at smc.vnet.net
- Subject: [mg34427] Re: [mg34411] Re: [mg34376] RE: [mg34340] Re: ValueQ
- From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
- Date: Sun, 19 May 2002 04:14:49 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Just evaluate: ?*Values And you will be lead to all of them. On Saturday, May 18, 2002, at 08:11 PM, DrBob wrote: > Uh oh... where do I find explanations for OwnValue and SubValue? > > Bobby Treat > > -----Original Message----- > From: Andrzej Kozlowski [mailto:andrzej at platon.c.u-tokyo.ac.jp] To: mathgroup at smc.vnet.net > Sent: Saturday, May 18, 2002 2:52 AM > Subject: [mg34427] [mg34411] Re: [mg34376] RE: [mg34340] Re: ValueQ > > 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: [mg34427] [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 >> >> >> >> >> >> > > > >