Mathematica Tips, Tricks, and Techniques Packages

21 downloads 462 Views 111KB Size Report
Feb 2, 2000 - 1.2 When should I use Get instead of Needs to load a package? ... 2.4 I tried to load a package and Mathem
Mathematica Tips, Tricks, and Techniques Packages Michael A. Morrison (Version 2.4: February 2, 2000)

Contents 1 Package Basics (Everybody). 1.1 What is the safest, most efficient way to load a package? . . . . . . . . . . . . . . . . . . . . . 1.2 When should I use Get instead of Needs to load a package? . . . . . . . . . . . . . . . . . . . 1.3 Where should I put packages other than Mathematica’s standard packages? . . . . . . . . . . 1.4 What’s the trickiest thing about packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 What are the three most common errors made in using packages—and how can I avoid them? 1.6 I’ve successfully loaded a package. How do I find out what new commands are available? . . . 1.7 Where do I find out about the standard packages which are supplied with Mathematica? . . . 1.8 Where can I find lots of additional well-documented, carefully tested packages on the internet? 1.9 The Help Browser claims not to know about a package. What’s wrong? . . . . . . . . . . . .

2 2 2 2 2 3 3 3 3 3

2 Coping with package-related errors. (Everybody) 2.1 How can I avoid the dreaded shadowing error? . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 What does the error message Get::noopen: mean? . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Mathematica claims it can’t find a package! What do I do? . . . . . . . . . . . . . . . . . . . 2.4 I tried to load a package and Mathematica gave me an error message Needs::"nocont":. Should I worry? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 How can I ensure that Mathematica will never give me a Needs::"nocont": message? . . . .

3 3 3 4

3 How does Mathematica’s package naming scheme work? (Intermediate) 3.1 What is the context name of Mathematica’s built-in commands? . . . . . . . . . . . . . . . . 3.2 What context name is appended to the commands and expressions I define? . . . . . . . . . . 3.3 How is the context name of a package related to the name of the file on disc that contains the contents of the package? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 How can I find the file name that corresponds to a Mathematica context name? . . . . . . . . 3.5 How can I find out which package contains a particular Mathematica command? . . . . . . . 3.6 Where should I put my packages? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 How can I get a list of the directories Mathematica checks when it looks for my packages? . .

4 4 4

4 4

5 5 5 5 5

2

1 1.1

Package Basics (Everybody). What is the safest, most efficient way to load a package?

Use Needs. If, for example, you try to load the package Graphics‘Graphics‘ using Get["Graphics‘Graphics‘"] and this package has already been loaded (e.g., by another package or by you earlier in your Mathematica session), then you’ll get the dreaded shadow error. But if you type Needs["Graphics‘Graphics‘"], then Mathematica will first check to see whether the package has already been loaded. If not, then Mathematica will loads it; if so, then Mathematica will do nothing. 1.2

When should I use Get instead of Needs to load a package?

Never. The alternate syntax for Get is