Re: Checking function syntax
- To: mathgroup at smc.vnet.net
- Subject: [mg64576] Re: Checking function syntax
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Thu, 23 Feb 2006 00:34:10 -0500 (EST)
- Organization: Uni Leipzig
- References: <dthh6f$nai$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
and adding
MyFunc::warg="Worng number of arguments."
MyFunc1[x___] /;
Length[{x}]!=2:=(Message[MyFunc::warg];MyFunc1[x])
will not help ???
Regards
Jens
"Chris Rodgers"
<rodgers at physchem.NOSPAMox.aREMOVEc.uk> schrieb im
Newsbeitrag news:dthh6f$nai$1 at smc.vnet.net...
| Hi,
|
| How can I make my own functions give an error if
they are called with
| the wrong syntax?
|
| For example, if I define this function
|
| In[37]:=
| MyFunc1[x_,y_]:=Tuples[{x,y},2]
|
| and then Map MyFunc2 over the result
|
| In[38]:=
| Map[MyFunc2,MyFunc1[a,b]]
|
| I get this (correct, desired) output.
|
| Out[38]=
|
{MyFunc2[{a,a}],MyFunc2[{a,b}],MyFunc2[{b,a}],MyFunc2[{b,b}]}
|
| However, if I inadvertently added a third
argument
|
| In[39]:=
| Map[MyFunc2,MyFunc1[a,b,c]]
|
| then I get this (correct, but undesired) output
|
| Out[39]=
| MyFunc1[MyFunc2[a],MyFunc2[b],MyFunc2[c]]
|
| I would prefer to get some sort of error message
in the second case,
| such as the built-in function Sin[...] produces
when called with the
| wrong number of arguments.
|
| In[41]:=
| Sin[1.]
| Out[41]=
| 0.841471
| In[42]:=
| Sin[2,3]
| From In[42]:=
| Sin::argx : Sin called with 2 arguments; 1
argument is expected. Out[42]=
| Sin[2,3]
|
| Many thanks,
|
| Chris.
|