Sign in to follow this  
Genjix

Which version of lisp is best

Recommended Posts

Genjix    100
I know a little bit of clisp and have been playing around with scheme. Can anyone give me any pointers on the advantages and disadvantages of various lisp implmentations? Which do you think is best and why?

Share this post


Link to post
Share on other sites
Icefox    238
Well now, that really depends on what in the world you want to do with it.

CLisp is an implementation of Common Lisp, which is designed to pretty much do anything and everything under the sun. If you're brave enough to walk the road less travelled, Common Lisp is a really good platform to develop just about any kind of application on. Just be prepared for the reality that Lisp Is Different.
Scheme, on the other hand, is pretty much the answer to the question "how small can we make Lisp and still have it usable?". It's much easier to learn than Common Lisp, much much MUCH simpler, and you will likely have to write quite a bit of basic library-ish code before you start making your actual application. Most implementations, however, will have (implementation-specific) libraries that help this, and there are also a number of collections of miscellanious handy code to help you along.

Common Lisp is good application development language, and great for all sorts of high-level logic and fun stuff like that. Scheme is a good embedded and scripting language. You can write big applications in it, but you'll have to do things like find/write your own hashtable library and advanced string handling routines.

Decide which you want to use, and for what, before you start worrying about implementations. It really depends on what you need.

Still, here's what I know. For Common Lisp, amoung the open source projects, there are basically three big ones:
CLisp, which is relatively small, fairly straightforward, written in C, widely cross-platform, and kinda slow.
CMUCL, which is REALLY big, REALLY complete, has all sorts of interesting/twisted things in it, and pretty damn fast. It's only on UNIX-y platforms though.
SBCL, which is a fork of CMUCL that makes things a lot smaller, a lot simpler, and almost as fast.

Of these three, only CLisp works on Windows, though I think all of them compile under Cygwin, and MAYBE MinGW. Then there's the non-free Lisps, of which the big ones are Allegro Common Lisp and Corman Lisp. Corman Lisp is Windows-only, and ACL has versions for Windows, Unix and Mac. With Corman Lisp at least, you get what you pay for, both in terms of speed and handy tools like GUI builders. If you're doing Windows dev, it's definately a good choice. I've never used ACL, but I assume it's rather similar.

For Scheme, there are BUCKETS of implementations, most of them free, some of them good. Check www.schemers.org for a pretty full list. I can recommend Scheme48, MIT Scheme, and (especially) PLT Scheme. Guile is a Scheme interpreter that's customized for embedded and scripting use. Whichever you choose, I suggest you make sure it's compliant with the Scheme standard (it should say R5RS compliant somewhere in the docs), especially if you plan on using other people's code.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Table comparison
http://www.cliki.net/Common%20Lisp%20implementation

Share this post


Link to post
Share on other sites
Genjix    100
ok thanks for the information.

I will probably go with clisp now as I want to really just pick up the semantics of the language so that I may later on as you say go with guile for embedding.

thanks again for the help all.

Share this post


Link to post
Share on other sites
Genjix    100

#!/usr/bin/clisp

(format t "Hello, World!!!")





genjix@linux:~> ./c
WARNING: *FOREIGN-ENCODING*: reset to ASCII
Hello, World!!!
genjix@linux:~>


how can I get rid of that annoying error message?

thanks again.

Share this post


Link to post
Share on other sites
Will F    1069
A little beside the point, but there's a little bit of info on GOAL (Game Object Assembly Lisp) which was used in the first Jak and Daxter game postmortem (gamasutra registration may or may not be required) - but to the best of my knowledge GOAL is not publicly available.

But it might give you some ideas.

Share this post


Link to post
Share on other sites
Genjix    100
Quote:
Original post by Will F
A little beside the point, but there's a little bit of info on GOAL (Game Object Assembly Lisp) which was used in the first Jak and Daxter game postmortem (gamasutra registration may or may not be required) - but to the best of my knowledge GOAL is not publicly available.

But it might give you some ideas.


nice read.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
lol LISP looks like its some kind of dog language, it basically has a very bad structure, sry for my ignorance, this is what happens when you spend all your time with c++, especially for someone who can write pong faster than you can write a hello world application using the .net platform :P

Share this post


Link to post
Share on other sites
Brandon N    354
Quote:
Original post by Anonymous Poster
lol LISP looks like its some kind of dog language, it basically has a very bad structure, sry for my ignorance, this is what happens when you spend all your time with c++, especially for someone who can write pong faster than you can write a hello world application using the .net platform :P
Unskilled and Unaware of it.

Share this post


Link to post
Share on other sites
Roboguy    794
Quote:
Original post by Genjix
*** Source Snippet Removed ***


genjix@linux:~> ./c
WARNING: *FOREIGN-ENCODING*: reset to ASCII
Hello, World!!!
genjix@linux:~>


how can I get rid of that annoying error message?

thanks again.
You must have saved the file using a character set different than ASCII. It works fine for me.

Share this post


Link to post
Share on other sites
Genjix    100

genjix@linux:~> cat c.lisp
#!/usr/bin/clisp

(defun hello-world()
(format t "Hello, World!!!"))

(hello-world)
genjix@linux:~>

and just to be sure I retyped it in pico and still got the same message.

Share this post


Link to post
Share on other sites
Icefox    238
Hmm. Is your computer set to use a non-English language?

Check the *terminal-encoding*, *default-file-encoding* and *misc-encoding* variables and make sure they match. Hopefully they'll say something like ASCII or maybe ISO-8859-1. The only immediate fix I can find for this is to start clisp with the "-E ASCII" option, documented further in the man page. This is certainly something new on me, and doesn't appear to be a standardized part of the language. Clisp is just being snarky.

Good luck, and keep on rocking.

Share this post


Link to post
Share on other sites
flangazor    516
Quote:
Original post by Brandon N
Quote:
Original post by Anonymous Poster
lol LISP looks like its some kind of dog language, it basically has a very bad structure, sry for my ignorance, this is what happens when you spend all your time with c++, especially for someone who can write pong faster than you can write a hello world application using the .net platform :P
Unskilled and Unaware of it.


Now with link.

Scheme implementations. S48 is popular for those on #scheme on freenode; MzScheme is the de facto implementation for the Scheme Cookbook; and I'll chime in to say that I use Bigloo for the really nice parser extensions.

I hope these links help.

Share this post


Link to post
Share on other sites
Brandon N    354
Quote:
Original post by flangazor
Quote:
Original post by Brandon N
Quote:
Original post by Anonymous Poster
lol LISP looks like its some kind of dog language, it basically has a very bad structure, sry for my ignorance, this is what happens when you spend all your time with c++, especially for someone who can write pong faster than you can write a hello world application using the .net platform :P
Unskilled and Unaware of it.


Now with link.

Scheme implementations. S48 is popular for those on #scheme on freenode; MzScheme is the de facto implementation for the Scheme Cookbook; and I'll chime in to say that I use Bigloo for the really nice parser extensions.

I hope these links help.
They do. Bigloo in particular looks quite useful.

Cheers.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this