Re: how call a function by same name in 2 different contexts?
- To: mathgroup at smc.vnet.net
- Subject: [mg56733] Re: [mg56715] how call a function by same name in 2 different contexts?
- From: "Hermann Schmitt" <schmitther at t-online.de>
- Date: Thu, 5 May 2005 06:01:16 -0400 (EDT)
- References: <200505040434.AAA06268@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello, I think, I ave a solution for this problem. See: www.schmitther.de, Dokumentation, p. 5 Hermann Schmitt ----- Original Message ----- From: "steve" <nma124 at hotmail.com> To: mathgroup at smc.vnet.net Subject: [mg56733] [mg56715] how call a function by same name in 2 different contexts? > > There is a function called FourierTransform that is part of standard > Mathematica. > > When I load the SignalProcessing package (a standalone Mathematica > application), it also comes with its own version of FourierTransform > function. > > The question is how can I, after loading the SignalProcessing package, > specify explicitly which function I wish to call? > > I found that I could do the above as follows. > > To call the standard function type > > System`FourierTransform[Sin[t],t,w] > > To call the function in SignalProcessing package, do > > Needs["SignalProcessing`"] > SignalProcessing`Support`SigProc`FourierTransform[Sin[t],t,w] > > The problem with the above solution is that I had to know before > hand inside which context the FourierTransform function lived in > the SignalProcessing package, by typing the command > > Context[FourierTransform] > SignalProcessing`Support`SigProc` > > Is there a better way to do this? Why can't I just say > something like "Call the FourierTransform function which > is part of the SignalProcessing package" without having > to know the full contextPath? > > But the bigger problem is that after I loaded the SignalProcessing > package, the Context[FourierTransform] does NOT list the > System`FourierTransform any more, even though I call > still access this context as follows > > System`FourierTransform[Sin[t],t,w] > > It seems that loading the SignalProcessing package hides the > context of the FourierTransform function in the System package > as you can see: > > Context["FourierTransform"] > System` > > Needs["SignalProcessing`"] > Context["FourierTransform"] > SignalProcessing`Support`SigProc` > > > I was expecting this output > > Context["FourierTransform"] > SignalProcessing`Support`SigProc` > System` > > So that I can see where each function is and then call any one > I want without ambiguity. > > Any idea how to handle all of this stuff? I do not think it is nice > that one package hides away another function of the same name in > different package. The whole idea of using packages is so that this > sort of thing should not happen ! > > Is there a way to unload a specific package after loading it without > having to restart Mathematica to clean things out? > > Thank you for any insight into this issue > nma124 >
- References:
- how call a function by same name in 2 different contexts?
- From: "steve" <nma124@hotmail.com>
- how call a function by same name in 2 different contexts?