Re: Options for a function
- To: mathgroup at smc.vnet.net
- Subject: [mg18138] Re: Options for a function
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 18 Jun 1999 00:51:42 -0400
- Organization: Universitaet Leipzig
- References: <7ka6ub$ins@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Virgil, Options[g] = {Opt1->BoxCar}; g[n_,opts___?OptionQ] := Module[{opt1,ans}, opt1 = Opt1 /. {opts} /. Options[g]; If[opt1 === BoxCar, ans = yes, ans = no]; {n,ans,opt1} ]; does what you want. Your function test with Equal[] and not with Same[]. Equal[BoxCar,TEST] evaluate not to True or False it evaluates to BoxCar==Test, this lets the local ans undefined and you get a ans$x. Hope that helps Jens Virgil Stokes wrote: > > The following simple function for testing options does not work the way I expect > (Vers. 3.0.1). > Options[g] = {Opt1->BoxCar}; g[n_,opts___?OptionQ] := Module[{opt1,ans}, opt1 = Opt1 /. {opts} /. Options[g]; If[opt1 == BoxCar, ans = yes, ans = no]; {n,ans,opt1} ]; > > If I use > g[3] > then it returns > {3,yes,BoxCar} > which is of course correct. However, if I use > g[3,Opt1->TEST] > then it returns > {3,ans$7,TEST} > And, this is not what I would expect. In fact, I am > unable to get the ans = no > > part of the If statement to execute. Why? > > -- Virgil