MathGroup Archive 2005

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

Search the Archive

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
>


  • Prev by Date: Re: letrec/named let
  • Next by Date: Re: letrec/named let
  • Previous by thread: how call a function by same name in 2 different contexts?
  • Next by thread: Re: how call a function by same name in 2 different contexts?