Re: using functions with package name prefixed.

*To*: mathgroup at smc.vnet.net*Subject*: [mg45723] Re: using functions with package name prefixed.*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Wed, 21 Jan 2004 04:55:08 -0500 (EST)*Organization*: The University of Western Australia*References*: <bu8gma$aiu$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

In article <bu8gma$aiu$1 at smc.vnet.net>, nma124 at hotmail.com (steve_H) wrote: > is there a way to use a function from a package without loading > the whole package, but by simply prefixing the package name to > the function name? No. But you can set things up (e.g using Master.m and Kernel`init` as used in the StandardPackages) to automatically load a (full) required package in which a particular function resides. For example, <<Graphics` LogPlot[Exp[x], {x, 0, 10}] > For an example, suppose we have a function foo[] in a packge called > Boo.m > > Now, one must load the Boo package by typing something like > > Needs["`Boo"] > > then one can write > > foo[] > > But notice that when calling foo[], the package name is not prefixed to > it, hence one does not know in which package foo[] is in by looking > at the function call. However, after your Needs (or Get) command has been executed, you can call a function with the explicit package name. E.g, Graphics`Graphics`LogPlot[Exp[x], {x, 0, 2}] works (because the Context of LogPlot is Graphics`Graphics`). > In Java for instance, I can write Boo.foo(), which makes it more > clear where foo() is located. So you can (sort of) do this. If you put each function into a separate package you could do what you want to do, though this would be rather clumsy in Mathematica. Cheers, Paul -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul