MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: overloading a function name in a package? How to query all names?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110815] Re: overloading a function name in a package? How to query all names?
  • From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
  • Date: Wed, 7 Jul 2010 07:44:52 -0400 (EDT)

Hi,

the patterns of your function-definition has nothing to with the usage  message,
which is attached to a symbol and not to the symbols different  DownValues.
Just look how Wolfram does it. Check the usage of Plot or Max.

Cheers
Patrick

Am Jul 6, 2010 um 11:03 AM schrieb Nasser M. Abbasi:

> Hello;
>
> I have package where I overloaded the same function name, defined to
> accept different arguments. as follows:
>
> -------------------
> BeginPackage["foo`"]
>
> boo1::usage="call me as follows: boo1[a,b]"
> boo1::usage="call me as follows: boo1[a]"
>
> Begin["`Private`"]
>
> boo1[a_,b_]:=Module[{},Print["in v1 of boo1"]];
>
> boo1[a_]:=Module[{},Print["in v2 of boo1"]];
>
> End[]
> EndPackage[]
> --------------------------------
>
> Now, I do
>
> <<foo`
>
> And I can call either of them OK
>
> boo1[1,2]
> boo1[1]
>
>
> But when I do
>
> Names["foo`*"]
>
> It only shows name boo1 once. (I can understand this*)
>
> And when I do
>
> ?foo`*
>
> It only list boo1 once. It seems to show the ::usage of the last one.
> OK. I can understand this.
>
> But, then, is there a way to show the user than I have more than one
> version of the same function name in the package? Without having to  
> look
> into the package file?
>
> I'd like to overload the function name, since I need to call it
> differently sometimes, and I do not want to make up new names of the
> same function, as in booV1[], booV2[], etc... since they all do the  
> same
> logical action, but accept different arguments depending on the  
> options
> needed, and so they all just have the same name, and the correct  
> version
> will be called depending on the arguments used.
>
> Overloading works OK when calling. I am just asking on how to show  
> that
> I have more than one function of the same name in the package, so I  
> know
> how to call each one.
>
> I looked a the docs, but so far, did not see anything. will keep  
> looking....
>
> thanks
> --Nasser
>
>



  • Prev by Date: Can This be Possible? A bug in Set (=) ?
  • Next by Date: Re: overloading a function name in a package? How to query all names?
  • Previous by thread: Re: overloading a function name in a package? How to query all names?
  • Next by thread: Re: overloading a function name in a package? How to query all names?