Prev: Anybody mind to translate this Felleisen quote from German to English
Next: Macros and anonymous functions
From: Ole Arndt on 26 Feb 2010 03:38 Ron Garret <rNOSPAMon(a)flownet.com> writes: > In article <gnus.m3k4u1c66z.fsf(a)sugarshark.com>, > Ole Arndt <ole(a)sugarshark.com> wrote: > >> Giovanni Gigante <giov(a)cidoc.iuav.it> writes: >> >> > ccc31807 wrote: >> >> Perl doesn't have an interactive environment like the Lisp REPL. >> > >> > That's what I thought as well, until I discovered this: >> > http://search.cpan.org/~mstrout/Devel-REPL-1.003007/lib/Devel/REPL.pm >> >> You can get even closer to a Slime-like perl development environment >> with Sepia: >> >> http://search.cpan.org/~seano/Sepia-0.991/lib/Sepia.pm> >> A "must have", IMHO. >> >> Ole > > That rumbling sound you hear is Erik Naggum rolling over in his grave. > > http://groups.google.com/group/comp.lang.lisp/msg/fc76ebab1cb2f863 Haha, I read that before. But unlike Erik, I am willing to apply another layer of duct tape if that is all that is asked of me, instead of replacing the whole part. And I want to do have the most comfortable duct tape dispenser available. Ole -- Ole Arndt --- http://www.sugarshark.com Don't have good ideas if you aren't willing to be responsible for them.
From: Giovanni Gigante on 26 Feb 2010 06:17 >> A "must have", IMHO. > > That rumbling sound you hear is Erik Naggum rolling over in his grave. I don't *like* perl now (I used to, when I was young, naif, and easily charmed by syntactic legerdemain), in a design sense it's certainly pretty horrible, grown by concrection rather than by design. And I humbly agree with Erik-from-his-grave than in perl There Are More Ways To Do It Awfully Wrong than in any other environment known to man. However, a flexible mess is still flexible, and I find that with a lot of discipline Perl is much more bearable -for one which has been exposed to Lisp- than most of the alternatives. For certain kind of tasks, at least. But then, wasn't it for CPAN and especially for Catalyst, which I use a lot, I would probably find no reason for it at this time. g
From: piscesboy on 26 Feb 2010 07:07 On Feb 25, 2:13 pm, refun <re...(a)nospam.gmx.com> wrote: > In article <dac96124-4225-4a4d-bdf9-13f4e0537...(a)g11g2000yqe.googlegroups..com>, > oraclmas...(a)gmail.com says... > > > > > > > On Feb 25, 11:45 am, ccc31807 <carte...(a)gmail.com> wrote: > > > On Feb 25, 11:34 am, Zach Beane <x...(a)xach.com> wrote: > > > > > > I make my living as a Perl programmer, munging data. Perl doesn't have > > > > > an interactive environment like the Lisp REPL. However, the cycle of > > > > > writing, testing, and running code is almost identical. > > > > > Not in my experience. > > > > Maybe that's a function of working habits rather than languages or > > > programming environments. I have developed a habit of write-switch- > > > run, and this is true with Perl, C, Java, and Lisp (although Java is > > > different in that I customarily write test cases for classes before I > > > write the class so I am not strictly running the code directly.) > > > > > I sometimes see Perl environments corrupted by unexpected PATH or > > > > PERLLIB environment variables, leading to running an unexpected version > > > > of Perl or an unexpected version of a module. > > > > I have been fortunate to control every machine that I have developed > > > on, so I've never had this particular problem, but with Java, yes, you > > > have to fiddle with the environment, e.g., CLASSPATH. > > > > CC. > > > Tangentially on the OP, > > > Since I am learning Lisp and CLOS in particular, what would be the > > best, most direct route to doing so? The least painful method? Also > > the cheapest method? One that doesn't involve enrolling in school or > > taking classes? > > > There's lots of resources out there in the form of online tutorials, > > code examples, etc for learning CLOS syntax, etc, but is there some > > simple resource available that conveniently catalogs functions and > > classes, their parameters, their uses, which packages they belong to > > etc...? > > > I've been programming in Lisp for several months now, in depth, and I > > still have a hard time tracking down function names, class names, > > etc...through apropos, describe, and the various other documentation > > functions built into the REPL (I currently have clisp and ccl > > installed along with SLIME), and it is a real pain to track down > > functions that often have incomplete or sparse documentation if it > > exists. > > > Often, it is through simple trial and error that I find functions for > > which I spent the last few hair pulling days that already exist in the > > existing Lisp packages, negating a lot of my work moot. It would be > > nice if the documenation and usage of all functions and classes in the > > standard user package and CLOS were documented mainly so I don't waste > > time writing something that already exists in a package. > > > Forgive me if this is already the case, and if it is then point me in > > that direction. > > Do you have a copy of the Hyperspec installed locally, so you can easily look > up standard CL functions in it from SLIME? Each chapter's dictionary is a good > point to look for functions related to some domain. > Obviously this is only for the COMMON-LISP package, if you're interested in the > MOP, read AMOP, otherwise for other packages you'll want to consult the library > documentation, as it usually comes with one. Another very helpful thing is > having source access to your implementation and library and using M-. in SLIME > to see how something is implemented, which usually gives you a better > understanding of things (especially when it comes to libraries other people > made). I don't think so. The hyperspec is the collection of documents that is supposed to come up when you type (describe 'symbol-name) right? All that does is bring up a URL that I have to cut and paste onto a web browser. I've been programming Lisp for only a little over two months, so how do I find out if it is installed locally? And then install it?
From: Tamas K Papp on 26 Feb 2010 07:22 On Fri, 26 Feb 2010 04:07:26 -0800, piscesboy wrote: > On Feb 25, 2:13 pm, refun <re...(a)nospam.gmx.com> wrote: >> In article >> <dac96124-4225-4a4d-bdf9-13f4e0537...(a)g11g2000yqe.googlegroups.com>, >> oraclmas...(a)gmail.com says... >> >> >> >> >> >> > On Feb 25, 11:45 am, ccc31807 <carte...(a)gmail.com> wrote: >> > > On Feb 25, 11:34 am, Zach Beane <x...(a)xach.com> wrote: >> >> > > > > I make my living as a Perl programmer, munging data. Perl >> > > > > doesn't have an interactive environment like the Lisp REPL. >> > > > > However, the cycle of writing, testing, and running code is >> > > > > almost identical. >> >> > > > Not in my experience. >> >> > > Maybe that's a function of working habits rather than languages or >> > > programming environments. I have developed a habit of write-switch- >> > > run, and this is true with Perl, C, Java, and Lisp (although Java >> > > is different in that I customarily write test cases for classes >> > > before I write the class so I am not strictly running the code >> > > directly.) >> >> > > > I sometimes see Perl environments corrupted by unexpected PATH or >> > > > PERLLIB environment variables, leading to running an unexpected >> > > > version of Perl or an unexpected version of a module. >> >> > > I have been fortunate to control every machine that I have >> > > developed on, so I've never had this particular problem, but with >> > > Java, yes, you have to fiddle with the environment, e.g., >> > > CLASSPATH. >> >> > > CC. >> >> > Tangentially on the OP, >> >> > Since I am learning Lisp and CLOS in particular, what would be the >> > best, most direct route to doing so? The least painful method? Also >> > the cheapest method? One that doesn't involve enrolling in school or >> > taking classes? >> >> > There's lots of resources out there in the form of online tutorials, >> > code examples, etc for learning CLOS syntax, etc, but is there some >> > simple resource available that conveniently catalogs functions and >> > classes, their parameters, their uses, which packages they belong to >> > etc...? >> >> > I've been programming in Lisp for several months now, in depth, and I >> > still have a hard time tracking down function names, class names, >> > etc...through apropos, describe, and the various other documentation >> > functions built into the REPL (I currently have clisp and ccl >> > installed along with SLIME), and it is a real pain to track down >> > functions that often have incomplete or sparse documentation if it >> > exists. >> >> > Often, it is through simple trial and error that I find functions for >> > which I spent the last few hair pulling days that already exist in >> > the existing Lisp packages, negating a lot of my work moot. It would >> > be nice if the documenation and usage of all functions and classes in >> > the standard user package and CLOS were documented mainly so I don't >> > waste time writing something that already exists in a package. >> >> > Forgive me if this is already the case, and if it is then point me in >> > that direction. >> >> Do you have a copy of the Hyperspec installed locally, so you can >> easily look up standard CL functions in it from SLIME? Each chapter's >> dictionary is a good point to look for functions related to some >> domain. Obviously this is only for the COMMON-LISP package, if you're >> interested in the MOP, read AMOP, otherwise for other packages you'll >> want to consult the library documentation, as it usually comes with >> one. Another very helpful thing is having source access to your >> implementation and library and using M-. in SLIME to see how something >> is implemented, which usually gives you a better understanding of >> things (especially when it comes to libraries other people made). > > I don't think so. The hyperspec is the collection of documents that is > supposed to come up when you type (describe 'symbol-name) right? All > that does is bring up a URL that I have to cut and paste onto a web > browser. DESCRIBE is implementation-dependent, so you would have to tell us which implementation/environment you are using. But it is very likely that your setup could be instructed to open the browser automatically. In SLIME, C-c C-d h will take you to a locally installed hyperspec, if it exists. > I've been programming Lisp for only a little over two months, so how do > I find out if it is installed locally? And then install it? Checking your hard disk is a good bet :-) Why are you assuming that we can answer your questions without knowing more about your environment (OS, IDE, implementation, etc)? Tamas
From: Tim Bradshaw on 26 Feb 2010 08:12
On 2010-02-26 11:17:56 +0000, Giovanni Gigante said: > I don't *like* perl now (I used to, when I was young, naif, and easily > charmed by syntactic legerdemain), in a design sense it's certainly > pretty horrible, grown by concrection rather than by design. And I > humbly agree with Erik-from-his-grave than in perl There Are More Ways > To Do It Awfully Wrong than in any other environment known to man. > However, a flexible mess is still flexible, and I find that with a lot > of discipline Perl is much more bearable -for one which has been > exposed to Lisp- than most of the alternatives. For certain kind of > tasks, at least. I posted an article in this thread which my news server (or more likely reader) ate somehow, but which, among other things, agreed with this. I quite like Perl: I like it much more than I like Scheme for instance[*]. I don't think this says that Perl is *better* than Scheme, but that, in fact, different people are in fact suited to different languages, and the original claim that they are not is wrong. I don't think it is at all safe to draw conclusions from human languages in this area: much better to draw conclusions from how people's aptitudes differ for kinds of maths, say (I'm good at geometry, fairly bad at algebra and terrible at logic for instance, which is reasonaly standard for someone with a physics background but can work backwards for someone with a pure maths background). --tim * And I would argue that Perl is much closer to CL than Scheme is |