Re: Saving Packages (was: Re: importing nb files)

*To*: mathgroup at smc.vnet.net*Subject*: [mg86793] Re: [mg86775] Saving Packages (was: Re: importing nb files)*From*: DrMajorBob <drmajorbob at bigfoot.com>*Date*: Fri, 21 Mar 2008 01:53:22 -0500 (EST)*References*: <fro3a6$i8l$1@smc.vnet.net> <frqpnm$505$1@smc.vnet.net> <24973910.1206007736951.JavaMail.root@m08>*Reply-to*: drmajorbob at longhorns.com

Make a=2 an initialization cell. Bobby On Thu, 20 Mar 2008 02:58:16 -0500, alexxx.magni at gmail.com <alexxx.magni at gmail.com> wrote: > Update: > > Starting by creating a new package window, the a=2 definition > generates a .m file containing: > > (* ::Package:: *) > > a=2 > > so: without the (* ::Input:: *) line, and with the definition not > commented. > > BUT - this remains a problem, if one doesnt want to start right from > scratch with a package, but instead convert a notebook to a package: > this seems impossible! > > > Alessandro > > > > > > ______________ > > oh, damn, you're right - now I remember! > > Yet... > 1) creating a notebook containing just: > a=2 > > 2) savinga as package file as "test.m" > > 3) importing it: <<"test.m" > > I get no error, but "a" remains undefined. > > (version 6.0.2 here) > > Looking for the problem, I noticed that the source of test.m is: > (* ::Package:: *) > > (* ::Input:: *) > (*a:=2*) > > commented out !!! > > I saved as package another bigger .nb file, and it did the same: it > comments out everything. When I took away the (* *) of course Get[] > worked. > > So? Maybe the right question is "How do I create a Package?" Because > obviously "Save As->Mathematica Package (.m)" is crippled. > > > David Bailey ha scritto: > >> alexxx.magni at gmail.com wrote: >> > a very basic question - sorry for that... >> > >> > probably it's me, almost never having programmed large projects tha= t >> > needed breaking up in different notebooks, so I seldom used the Get= >> > (<<) function, but I seemed to remember this function would allow m= e >> > to Import&evaluate a notebook in another. >> > >> > So, defining simply a=2 in a notebook test.nb, when I executed: >> > >> > <<"test.nb" >> > >> > I obtained: >> > >> > Notebook[{Cell[ >> > CellGroupData[{Cell[BoxData[RowBox[{"a", "=", "2"}]], "Input",= >> > CellChangeTimes -> {{3.41474*10^9, 3.41474*10^9}}], >> > Cell[BoxData["2"], "Output", CellChangeTimes -> {3.41474*10^9}= ]}, >> > Open]]}, WindowSize -> {640, 750}, >> > WindowMargins -> {{150, Automatic}, {Automatic, 52}}, >> > FrontEndVersion -> "6.0 for Linux x86 (32-bit) (February 7, 2008)"= , >> > StyleDefinitions -> "Default.nb"] >> > >> > (a verbose output which I didnt remember) and, moreover, my "a" >> > variable still remains undefined! >> > What I'm missing (or forgetting)? >> > >> > thanks! >> > >> > Alessandro >> > >> You are forgetting that Get reads .m files (sometimes known as packag= e >> files), not notebooks. However, in 6.0 .m files can be edited almost = as >> if they were notebooks and non-code information such as headings is >> stored in the .m file as comments. >> >> Note also, that if you open a notebook and evaluate it, and then open= >> another and evaluate that also, the second evaluation will use any >> relevant definitions from the first one. >> >> David Bailey >> http://www.dbaileyconsultancy.co.uk > > -- = DrMajorBob at longhorns.com