Re: Returning rules from functions inside a package context
- To: mathgroup at smc.vnet.net
- Subject: [mg82483] Re: Returning rules from functions inside a package context
- From: Albert <awnl at arcor.net>
- Date: Mon, 22 Oct 2007 05:34:04 -0400 (EDT)
- References: <ff9rjl$4mv$1@smc.vnet.net>
Hi,
as others have pointed out, there are several possibilities to achieve
what you want. I just wanted to strongly recommend not to use the
Global`a trick, which will cause all kind of troubles if used in other
than the most simple cases. In your case you could simply return just
the number, there seems to be no added value in returning the rule at
all. Of course if there are more than one parameter in your model, it
makes sense to return a list of rules, but then I would recommend to
either use strings with meaningful names as others have mentioned or use
additional arguments for the symbol names that will be used. This can be
achieved like this:
BeginPackage["A`"]
f::usage = ""
Begin["`Private`"]
f[a_Symbol] := FindFit[{{0, 0}, {1, 1}}, a x, {a}, x]
End[]
EndPackage[]
The function could then be called like:
f[c]
and returns
{c->1.}
It is now in the responsibility of the caller to make sure that the
symbols used are not set to a value...
hth,
albert