MathGroup Archive 2008

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

Search the Archive

Re: Passing default options to nested function call

  • To: mathgroup at smc.vnet.net
  • Subject: [mg94060] Re: Passing default options to nested function call
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Wed, 3 Dec 2008 05:45:32 -0500 (EST)

On 12/2/08 at 12:41 AM, stoneyb at gmail.com (Stoney Ballard) wrote:

>My original question still stands: Is it safe to assume that only
>the first value for an option will be used, when there's more than
>one value for that option in the list?

The answer almost certainly depends on how options are used in
the function code. My preferred way of using options in
functions I write look something like

func[x_,y_,opts__]:=
   Module[{stuff},
     setting = opt1/.{opts}/.Options[func];
     ...

  The first application of ReplaceAll ensures any options
specified at the time of the function call are looked at first.
And if they exist, opt1 will be replaced with something that
cannot be affected by the rules returned by Options[func]. And
if no options are specified, the second application of
ReplaceAll ensures opt1 is given a value.

Per the documentation for ReplaceAll, the first rule that is
applicable is used and no further rules are used. So, my
approach could be done as

setting = opt1/.Join[{opts},Options[func]]

One other thing, I might do is use FilterRules to filter out non
applicable options. But mostly I use this when passing some of
the options to a built-in function my function calls.


  • Prev by Date: Re: Re: A problem in Pi digits as Lattice space filling
  • Next by Date: Re: Copying text out of mathematica
  • Previous by thread: Re: Passing default options to nested function call
  • Next by thread: Re: Passing default options to nested function call