Test for On/Off (was: RE: Re: Manipulating Slot objects in Compile)
- To: mathgroup at smc.vnet.net
- Subject: [mg24689] Test for On/Off (was: RE: [mg24604] Re: Manipulating Slot objects in Compile)
- From: Wolf Hartmut <hwolf at debis.com>
- Date: Fri, 4 Aug 2000 01:19:11 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
improved at [Hartmut Wolf -2-] > -----Original Message----- > From: Wolf Hartmut To: mathgroup at smc.vnet.net > Sent: Tuesday, August 01, 2000 1:47 PM > To: 'kuska at informatik.uni-leipzig.de'; Wolf Hartmut > Cc: mathgroup at smc.vnet.net > Subject: RE: [mg24604] Re: Manipulating Slot objects in Compile > > > [Hartmut Wolf] > > There is a way to do that [find out if the message was prevoiusly on or > off], regard: > > In[7]:= Clear[cArg] > > In[8]:= On[Part::"partd"] > > In[9]:= wasOn = Check[cArg[[1]]; False, True, Part::"partd"] > From In[9]:= > Part::"partd": "Part specification \!\(cArg \[LeftDoubleBracket] 1 \ > \[RightDoubleBracket]\) is longer than depth of object." > Out[9]= True > > In[10]:= Off[Part::"partd"] > In[11]:= Check[cArg[[1]]; False, True, Part::"partd"] > Out[11]= False > > In[12]:= If[wasOn, On[Part::"partd"]] > > In[13]:= Check[cArg[[1]]; False, True, Part::"partd"] > From In[13]:= > Part::"partd": "Part specification \!\(cArg \[LeftDoubleBracket] 1 \ > \[RightDoubleBracket]\) is longer than depth of object." > Out[13]= True > > > [Hartmut Wolf -2-] The disadvantage of this method is that the error was really provoked, sometimes this may not be easy to do (or may have other disadvantages). Now, this is not neccessary, it suffices to issue the message! So (here the message was on): In[1]:= wasOn = Check[Message[Part::"partd", "*** Test ***"]; False, True, Part::"partd"] >From In[1]:= Part::"partd": "Part specification \!\(\"*** Test ***\"\) is longer than \ depth of object." Out[1]= True In[2]:= Off[Part::"partd"] In[3]:= Message[Part::"partd", "*** silent operation ***"] In[4]:= If[wasOn, On[Part::"partd"]] In[5]:= Message[Part::"partd", "*** noisy operation ***"] >From In[5]:= Part::"partd": "Part specification \!\(\"*** noisy operation ***\"\) is \ longer than depth of object." ------------------ In[6]:= Off[Part::"partd"] (here the message was set off): In[7]:= wasOn = Check[Message[Part::"partd", "*** Test ***"]; False, True, Part::"partd"] Out[7]= False In[8]:= Off[Part::"partd"] In[9]:= Message[Part::"partd", "*** silent operation ***"] In[10]:= If[wasOn, On[Part::"partd"]] In[11]:= Message[Part::"partd", "*** behaviour as before ***"] So this is a general scheme! -- Hartmut Wolf