Re: Unevaluated functions
- To: mathgroup at smc.vnet.net
- Subject: [mg109383] Re: Unevaluated functions
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Sat, 24 Apr 2010 04:02:23 -0400 (EDT)
- References: <hqou0u$9g5$1@smc.vnet.net> <hqp995$gqv$1@smc.vnet.net> <hqrja6$lvv$1@smc.vnet.net>
mokambo wrote: > > Following your suggestions I tried: > > PowerMod[___] := "N/A"; > > but it does not work unless you unprotect the symbol (a bad idea) > > Attributes[PowerMod] > = {Listable, Protected, ReadProtected} > > So I searched through the docs and found: > > Check[PowerMod[3, -1, 288], "N/A"] > If you really want this effect, why not use Unprotect - you can always use Protect after you have made the change! (Note that these changes only affect the in-core copy of the function - no permanent change is made!) Check is all very well, but some functions - such as Integrate - can return unevaluated without giving a message. I would supply your own function that calls the real function internally, for example: In[498]:= MyIntegrate[x__] := Module[{ans}, ans = Integrate[x]; If[Head[ans] === Integrate, "N/A", ans ] ]; In[499]:= MyIntegrate[f[x], x] Out[499]= "N/A" In[500]:= MyIntegrate[Sin[x], x] Out[500]= -Cos[x] David Bailey http://www.dbaileyconsultancy.co.uk