I started teaching myself Lisp just this week, and I've hit my first major hurdle: I can't seem to find an interpreter/compiler that works for me. I have tried four of them so far, and I'm assuming they're four of the more popular ones. I'm not sure. I have tried the following interpreters:

Poplog (w/ Lisp language loaded)

Ufasoft Lisp Studio

GNU CLisp (Windows version. It's a generic name, but this is the one w/ a Menorah as its launch icon)

Visual Lisp for AutoCAD (I believe this one interprets AutoLISP, a dialect of Lisp that CAD uses, not sure though)

Of the four, I have had most success w/ Visual Lisp (or VLisp for short). It highlights commands, parentheses, etc. Poplog and Ufasoft Lisp Studio are both very primitive (virtually just cmd prompts) and I have difficulty using them. GNU CLisp is a bit more manageable, but I still have difficulty using it. I guess my problem is that I've never done anything coding-related before. Well, I wrote programs for my TI-84 calculator back in 10th grade, but that's about it. I think those were in BASIC, i don't even know. So, in addition to learning the language (I'm using LispTutor Jr right now), I also have to teach myself the basics of using interpreters, compilers, and the like.

In short, I'm lost. I need something to verify the code that I'm attempting, and I can't find anything user-friendly enough to not interfere with my limited knowledge of Lisp in itself. Can anybody direct me to one that's perfect for me? Or if not, are any of the four that I listed workable, if I were to know a few shortcuts or commands?

Also, this is my first post here. I hope to be active here as I pick up on my first coding language. I don't mean to promote competition for this forum, but are there any other communities that I could look into for Lisp help?

Last edited by Shake on Thu Jul 30, 2009 7:38 pm, edited 1 time in total.

Shake wrote:Of the four, I have had most success w/ Visual Lisp (or VLisp for short). It highlights commands, parentheses, etc. Poplog and Ufasoft Lisp Studio are both very primitive (virtually just cmd prompts) and I have difficulty using them. GNU CLisp is a bit more manageable, but I still have difficulty using it.

Yes, you'll want an environment that's more helpful than a command line in a terminal. You could try ABLE, which is an editor with “batteries included”, as I understand it: http://phil.nullable.eu/ . It's bundled with some libraries and with Clozure Common Lisp. I use SBCL with SLIME in Emacs.

Shake wrote:Also, this is my first post here. I hope to be active here as I pick up on my first coding language. I don't mean to promote competition for this forum, but are there any other communities that I could look into for Lisp help?

There's always comp.lang.lisp.

P.S. With regard to popular implementations, you've got Lispworks and Allegro Common Lisp on the proprietary side, and CLISP, SBCL, ECL, and now Clozure on the free software side. Apologies to whomever I left out.

Myself, I've been using Clisp and Gvim for about three weeks now. So far so good. I like Clisp for its ease of use and Gvim because its not Emacs(sorry learning Lisp and Emacs at the same time is a bit much...maybe after a few months).

Shake - as for being lost, I feel your pain. I come from a self taught background of C and this pointer-less language(Lisp) is tearing down some very established ways of thinking....I guess we'll just have to keep plugging away...G4143

Shake wrote:Of the four, I have had most success w/ Visual Lisp (or VLisp for short). It highlights commands, parentheses, etc. Poplog and Ufasoft Lisp Studio are both very primitive (virtually just cmd prompts) and I have difficulty using them. GNU CLisp is a bit more manageable, but I still have difficulty using it.

Yes, you'll want an environment that's more helpful than a command line in a terminal. You could try ABLE, which is an editor with “batteries included”, as I understand it: http://phil.nullable.eu/ . It's bundled with some libraries and with Clozure Common Lisp. I use SBCL with SLIME in Emacs.

Shake wrote:Also, this is my first post here. I hope to be active here as I pick up on my first coding language. I don't mean to promote competition for this forum, but are there any other communities that I could look into for Lisp help?

There's always comp.lang.lisp.

P.S. With regard to popular implementations, you've got Lispworks and Allegro Common Lisp on the proprietary side, and CLISP, SBCL, ECL, and now Clozure on the free software side. Apologies to whomever I left out.

ABCL. I think that's it for free implementations.There was some extended sbcl or clisp that was then proprietary, but I haven't heard anything of it in a while so I've assumed it's dead...

Shake wrote:I started teaching myself Lisp just this week, and I've hit my first major hurdle: I can't seem to find an interpreter/compiler that works for me. I have tried four of them so far, and I'm assuming they're four of the more popular ones.

It's not quite clear if you need a Common Lisp or if any dialect of Lisp will do. Lisp is a family of languages of which Common Lisp is probably the most popular. Scheme, Clojure and Emacs Lisp are among the other popular dialects. The reason I ask is that your post title suggests you need a Common Lisp but the list of things you've tried has a couple of other dialects in there so I'm not sure if this is a hard requirement for you.

If you are flexible about your requirements then PLT Scheme is a good choice. As the name suggests, it's a Scheme implementation and includes a great editor and lots of documentation. It could be the easiest way to get up and running quickly.

If you do need a Common Lisp then you have several options. You can continue with CLisp which is a great Lisp system but you may want to combine it with an editor which can help you out with your coding. The most common choice is to use Emacs with SLIME. Many people will tell you that it's worth learning this from the start even though it may seem like a lot of additional stuff to learn on top of Common Lisp. The reason being that Emacs is immensely powerful and useful for almost all of your computing, not just Lisp programming. However, I think it can be too much to take on at once and it's not the easiest thing to get up and running from scratch.

The two main commercial Lisp implementations, LispWorks and Allegro, both provide free versions of their compilers which come with nice IDEs. While they are certainly complex systems, they're probably a little less intimidating than staring at Emacs for the first time and wondering what keys to press!

My own little project ABLE may be useful for you but it is quite a raw environment with not too much hand holding. You can watch the screencast to see if it would be any good to you but I certainly don't want to push it as I think the other options may be more suitable in your situation.

What you need is an editor, or, more precisely, an environment. Just to give you more options, the commercial implementations Lispworks and Allegro already com with nice environments, there is also Cusp and others that were already mentioned. I would recommend Cusp or Able for you, since you are starting now.

I can see the tutorial you are following is very basic, it is always good to start slowly. If you wish to learn more, you can try Practical Common Lisp once you are more comfortable.

Last edited by gugamilare on Thu Jul 30, 2009 7:39 pm, edited 1 time in total.

Wow, thank you Paul, GZeus, and phil for the helpful info! I believe I've underestimated the scope of learning something like this. My curiosity in Lisp was sparked while tooling around in AutoCAD recently. I saw a few implementations of AutoLisp that simplified certain strings of commands in AutoCAD. I ignorantly figured that AutoLisp and Lisp in general must have been created by the folks at Autodesk as a companion to their CAD programs. Haha, I didn't realize that it's actually one of the longest established high-level languages today.

phil wrote:It's not quite clear if you need a Common Lisp or if any dialect of Lisp will do. The reason I ask is that your post title suggests you need a Common Lisp but the list of things you've tried has a couple of other dialects in there so I'm not sure if this is a hard requirement for you.

Well, since my original goal was to learn some lisp for ACAD purposes, I suppose I should gear my learning towards the language implemented for ACAD. If I'm not mistaken, Autodesk has implemented their own dialect of Lisp called "AutoLISP." I think it's close to CL, but with added functionality for ACAD commands. Then again, if this language is too specialized, I think I'd rather learn a more general dialect of Lisp first before I try to tackle the more specific AutoLISP.

I've noticed that some functions that LispTutor Jr is teaching me are not recognized by Autodesk's supplied Lisp interpreter. In fact, some functions seem to only work in the tutor environment (it is a field in the browser that checks bits of code for correctness). For example, "let" is not recognized by Autocad's Lisp dialect. This further worries me about learning in Autocad's Lisp environment because it may mislead me.

Sorry for the complicated reply, by the way, I'm picking apart your post and trying to address everything. Emacs is a text editor, yes? Analogous to notepad or wordpad but with loads more functionality? I downloaded Notepad++ recently, and I've been typing out strings of code in that. The highlighting functionality of Notepad++ is very helpful, but I wonder what dialect of Lisp is recognized by Notepad++, since there seems to be many equally relevant alternatives.

I've looked at the Emacs site, but I was tentative about it. I'll definitely give it a go, though. I'm really looking for something that I can throw test code at and get feedback.

phil wrote:My own little project ABLE may be useful for you but it is quite a raw environment with not too much hand holding. You can watch the screencast to see if it would be any good to you but I certainly don't want to push it as I think the other options may be more suitable in your situation.

I think I'm gonna try ABLE first, because it looks to be less troublesome than Emacs and I'm still working through the tutorials anyways so I'm in no rush to enter a full-featured coding suite, haha.

Shake wrote:I've noticed that some functions that LispTutor Jr is teaching me are not recognized by Autodesk's supplied Lisp interpreter. In fact, some functions seem to only work in the tutor environment (it is a field in the browser that checks bits of code for correctness). For example, "let" is not recognized by Autocad's Lisp dialect. This further worries me about learning in Autocad's Lisp environment because it may mislead me.

LispTutor Jr seems to teach Common Lisp rather than AutoLisp. I recommend for you to focus on some dialect of Lisp, either CL, Scheme, Clojure or AutoLisp.

It is very strange that AutoLisp doesn't have let, it seems to be a very simpler dialect. Don't expect to find the features you may find in Common Lisp if you want to learn it.

Shake wrote:Then again, if this language is too specialized, I think I'd rather learn a more general dialect of Lisp first before I try to tackle the more specific AutoLISP.

If you think you may get interested in programming in general, then there would be clear benefits in learning a more general programming language first in order to better understand the fundamental concepts. In this case I would recommend either of Scheme or Common Lisp. Scheme is smaller (although recent revisions of the language have become more complicated) and therefore easier to learn but Common Lisp has the advantage of a larger standard which means you can more easily switch between implementations.

Shake wrote:I've noticed that some functions that LispTutor Jr is teaching me are not recognized by Autodesk's supplied Lisp interpreter.

I've not heard of this tutor before so I can't comment on it. There are lots of good Lisp and Scheme books available though and many are free. As you're new to programming, A Gentle Introduction to Symbolic Computation is often recommended. If you want something a little faster moving then Practical Common Lisp, recommended by gugamilare, is probably the best starter book available.

Shake wrote:Emacs is a text editor, yes? Analogous to notepad or wordpad but with loads more functionality? I downloaded Notepad++ recently, and I've been typing out strings of code in that. The highlighting functionality of Notepad++ is very helpful, but I wonder what dialect of Lisp is recognized by Notepad++, since there seems to be many equally relevant alternatives.

You're definitely along the right lines in wanting a Lisp aware editor. Many regular text editors will provide some help with Lisp code such as matching parenthesis, indenting each line and maybe colouring the syntax for you. The disadvantage with a simpler text editor is that the integration with the Lisp system itself is typically quite minimal. Some editors may allow you to start a command line program within them so that you can type directly as if you were at the command prompt but that's about the limit of it. With something like Emacs+SLIME, CUSP, ABLE, LispWorks or Allegro you're able to directly evaluate your code from the editor. Typically there will be at least two ways of working:

1. Write code in a file as with any text editor but with the option to load and compile the file as well as evaluate individual expressions directly into the Lisp system.

2. Type directly to the Lisp REPL, usually in another pane or window within the editor, to try out individual expressions.

You can get a similar effect with any editor and a terminal window open side by side and just switch between them cutting and pasting or issuing (load ...) commands but it is nice to have this all together.