Re: Functions and evaluation, returning themselves

*To*: mathgroup at smc.vnet.net*Subject*: [mg7265] Re: Functions and evaluation, returning themselves*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Tue, 20 May 1997 02:59:15 -0400 (EDT)*Organization*: University of Western Australia*Sender*: owner-wri-mathgroup at wolfram.com

Red wrote: > I am trying to write a function in Mathematica > that can give a message and return the > expression entered. > > For example > In[1] := Sin[] > > ``Sin::"argx": > "Sin called with 0 arguments; 1 argument is expected. > > Out[1]= Sin[] The following rule issues an error message (using the built-in Message mechanism) if f is called with an incorrect number (i.e. != 1) of arguments: f[args___]:= Null/; Length[{args}] != 1 && Message[f::"argx",f,Length[{args}]] As a side-effect of evaluating the Condition -- entered using the infix shorthand /; which can be read as such that -- the rule on the right-hand side computes the number of arguments using Length and (denoted here by &&) prints a message when it is not equal to one (i.e., Length[{args}] != 1): f[1,2] f::"argx": "f called with 2 arguments; 1 argument is expected." f[1,2] Cheers, Paul _________________________________________________________________ Paul Abbott Department of Physics Phone: +61-8-9380-2734 The University of Western Australia Fax: +61-8-9380-1014 Nedlands WA 6907 paul at physics.uwa.edu.au AUSTRALIA http://www.pd.uwa.edu.au/Paul God IS a weakly left-handed dice player _________________________________________________________________