Re: passing both arbitary and defined options
- To: mathgroup at smc.vnet.net
- Subject: [mg98451] Re: [mg98421] passing both arbitary and defined options
- From: "David Park" <djmpark at comcast.net>
- Date: Fri, 10 Apr 2009 04:52:35 -0400 (EDT)
- References: <26757789.1239273405870.JavaMail.root@n11>
Something like the following, which I haven't actually tested. Use a definition: Options[NewPlot] = Join[Options[ListPlot],{NewPlot -> value}] Write you NewPlot definition: NewPlot[data_,opts:OptionsPattern[]]:= Module[ {newplotvalue = OptionValue[NewPlot], fopts = FilterRules[opts, Options[ListPlot]}, Do something with newplotvalue, Call ListPlot using fopts ] David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Eddie [mailto:eddie at webassign.net] So I'm building a plotting function, and I want it to be able to inherit the same options that a ListPlot[] command can inherit, so my prototype looks like this: NewPlot[data_List,options___Rule]:=Module[{},blah blah blah ListPlot[fancy stuff,options] ] Here's the rub, if I additionally want to create a NewPlot-specific option, it doesn't mesh. For example: NewPlot[data_List,OptionsPattern[{newOption->newValue}],options___Rule] := etc Options contains the rule for newOption when NewPlot is called with that option utilized, and ListPlot throws an error because it's not a recognized option for ListPlot. Is there a way I can have my personally declared options and the wildcard options both present and working? Is there a way to "Drop" the rule that matches the user-defined option from 'options'?