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