Re: package construction
- To: mathgroup at smc.vnet.net
- Subject: [mg117989] Re: package construction
- From: Alexey <lehin.p at gmail.com>
- Date: Thu, 7 Apr 2011 08:06:29 -0400 (EDT)
- References: <inerrp$jae$1@smc.vnet.net> <inhaph$28b$1@smc.vnet.net>
"Sjoerd C. de Vries" <sjoerd.c.devr... at gmail.com> wrote: > This is from tutorial/SettingUpMathematicaPackages. It doesn't look > that complicated to me... > > BeginPackage["Collatz`"] > > Collatz::usage = > "Collatz[n] gives a list of the iterates in the 3n+1 problem, > starting from n. The conjecture is that this sequence always > terminates." > > Begin["`Private`"] > > Collatz[1] := {1} > Collatz[n_Integer] := Prepend[Collatz[3 n + 1], n] /; OddQ[n] && n > > 0 > Collatz[n_Integer] := Prepend[Collatz[n/2], n] /; EvenQ[n] && n > 0 > > End[ ] > EndPackage[ ] The key thing that should be added here is that one must create (= use in any way) all the symbols that must be accessible outside of the package *before* Begin["`Private`"]. In this case they will be in the Collatz` context (in the example above) and they will be in the $ContextPath after loading of the package. Alexey