MathGroup Archive 2009

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

Search the Archive

Why use OptionsPattern, OptionsValue ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102296] Why use OptionsPattern, OptionsValue ?
  • From: "Ted Ersek" <ersekt at md.metrocast.net>
  • Date: Tue, 4 Aug 2009 04:29:31 -0400 (EDT)

Prior to Mathematica version 6 a good way to write a function with two
options was the following.

-----------------------------------------------------------
Options[foo] = {Opt1 -> val1, Opt2 -> val2};

foo[x_, opts___?OptionQ] := Module[{optn1, optn2},
    {optn1, optn2} = {Opt1, Opt2} /. Flatten[{opts, Options[foo]}];
    Blah[x, optn1, optn2]
]

----------------------------------------------------------
I am pretty sure the program above does the same thing in every version 
of Mathematica (since version 3 if not earlier). However, as of 
Mathematica 6 we have OptionsPattern, and OptionsValue. It seems the 
main utility of OptionsPattern, and OptionsValue are to define functions 
such as the one above.

One clear advantage to the old approach (see my example above) is that 
you end up with code that works well across many versions of 
Mathematica. What are the advantages to implementing options using 
OptionsPattern, and OptionsValue?

Thanks,
    Ted Ersek





  • Prev by Date: Re: Problems with NDSolve and SymplecticPartitionedRungeKutta method
  • Next by Date: Re: Re: Creating a Random Function to Select an Irrational
  • Previous by thread: Re: Problems with NDSolve and SymplecticPartitionedRungeKutta method
  • Next by thread: Re: Why use OptionsPattern, OptionsValue ?