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