RE: Package and options
- To: mathgroup at smc.vnet.net
- Subject: [mg50427] RE: [mg50400] Package and options
- From: "David Park" <djmp at earthlink.net>
- Date: Fri, 3 Sep 2004 03:35:21 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Guillermo, If it was part of a notebook, I would write your package something like the following. BeginPackage["Test1`"] fexample1::"usage" = "fexample[x, opts] calculates (a + b) x where a and b are set by \ options."; a::usage = "a is an option for fexample that sets its value."; b::usage = "b is an option for fexample that sets its value."; Begin["`Private`"] Options[fexample1] = {a -> Global` A, b -> Global` B}; fexample1[x_, opts___Rule] := (a + b) x /. {opts} /. Options[fexample1] End[] EndPackage[] Then ?Test1`* gives usage messges for a, b and fexample1 and fexample1[x] (A + B) x Notice that I moved the Options statement to the Private section and I used Global`A and Global`B to set the default values of a and b. Also you want to start the usage message with the function name and arguments to get automatic command completion when desired. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Guillermo Sanchez [mailto:guillerm at aida.usal.es] To: mathgroup at smc.vnet.net Dear friends Here is a example package: (*Title : Package for testing options*) BeginPackage["Test`Test1`"] fexample1::"usage" = "Help example"; Options[fexample1] = {a -> A, b -> B} Begin["`Private`"] fexample1[x_, opts___Rule] := (a + b) x /. {opts} /. Options[fexample1] End[] EndPackage[] (*Now I request the package Help*) ?"Test`Test1`*" (*They are shown not only the fexample1 help but the symbols used in Options are also shown. How can I prevend that these symbols (a, A, b, B} be shown. Other general question: When Options should be place inside of the private context? Thanks. Guillermo*)