writing own package: cannot read it in..
- To: mathgroup at smc.vnet.net
- Subject: [mg117922] writing own package: cannot read it in..
- From: Stuart Little <grobber at gmail.com>
- Date: Mon, 4 Apr 2011 06:31:36 -0400 (EDT)
Hi,
I've used Mathematica before, but I'm quite new to writing packages. Here's what I'm trying to do:
I found the example
BeginPackage["foo`"]
Unprotect @@ Names["foo`*"];
ClearAll @@ Names["foo`*"];
f::usage = "f[x]"
Begin["`Private`"]
f[x_] := Module[{}, x^2];
End[]
Protect @@ Names["foo`*"];
EndPackage[]
in an online help file. I typed that thing in a new notebook, changed the cell to "Initialization cell", and also changed the style to "code", saved it in a subdirectory somewhere in my Mathematica directory (this is Mathematica 8, by the way), and used the command
Get["D:\\Matedoc\\Progs\\Mathematica 8\\AddOns\\Packages\\foo\\foo.m"]
The problem is that I get the output
Notebook[{Cell[
BoxData[{RowBox[{"BeginPackage", "[", "\"foo`\"", "]"}], "
", RowBox[{RowBox[{RowBox[{"Unprotect", " ", "@@", " ",
RowBox[{"Names", "[", "\"foo`*\"", "]"}]}], ";"}], " "}], "
", RowBox[{RowBox[{RowBox[{"ClearAll", " ", "@@", " ",
RowBox[{"Names", "[", "\"foo`*\"", "]"}]}], ";"}], " "}], "
", RowBox[{RowBox[{"f", "::", "usage"}], " ", "=", " ",
"\"f[x]\""}], "
", RowBox[{"Begin", "[", "\"`Private`\"", "]"}], "
", RowBox[{RowBox[{RowBox[{RowBox[{"f", "[", "x_", "]"}], " ",
":=", " ",
RowBox[{"Module", "[",
RowBox[{RowBox[{"{", "}"}], ",", " ",
RowBox[{"x", "^", "2"}]}], "]"}]}], ";"}], " "}], "
", RowBox[{"End", "[", "]"}], "
", RowBox[{RowBox[{RowBox[{"Protect", " ", "@@", " ",
RowBox[{"Names", "[", "\"foo`*\"", "]"}]}], ";"}], " "}], "
", RowBox[{"EndPackage", "[", "]"}]}], "Code",
InitializationGroup -> True,
CellChangeTimes -> {{3.51077*10^9, 3.51077*10^9}, 3.51078*10^9,
3.51078*10^9}]}, WindowSize -> {715, 559},
WindowMargins -> {{24, Automatic}, {Automatic, 30}},
FrontEndVersion ->
"8.0 for Microsoft Windows (32-bit) (November 7, 2010)",
StyleDefinitions -> "Default.nb"]
and the function f[x]=x^2 that the package is trying to define does not become available: when evaluating f[2], I simply get back f[2].
I tried long and hard, but I couldn't find a reference to precisely this problem; at this stage, it's becoming very frustrating. I have no idea what all those RowBox things are about..
Thank you,
chirvasitua