MathGroup Archive 1999

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

Search the Archive

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


  • Prev by Date: Re: docs on bracket shapes
  • Next by Date: Re: Options for a function
  • Previous by thread: Re: Options for a function
  • Next by thread: Re: Options for a function