I'd like to learn lisp but I'm confused with the many variants I'm finding.
What would you recommend for an experienced programmer in other
languages (mainly C and perl), wanting to learn lisp?
Should be a well documented lisp and working in Mac OS and main UNIXes
(Solaris, HP-UX, AIX, ...)
I've found and enjoyed the "Practical Common Lisp" book, mainly because
it starts with realistic examples, not the car/cdr/lists I had found in
the past that lead me to the wrong conclusion that lisp was "only" good
at processing abstract lists and could do nothing useful.
A bit more reading in this ng seems to suggest that Common Lisp is not a
good choice, so I'd like to have some more opinions before spending to
much time learning the wrong stuff.
What do you think? Ideas and criticisms welcome.
--
Toni
Allegro CL supports FreeBSD, HP-UX, Linux, Solaris, Tru64, Mac OS X,
Windows. Lispworks runs on HP-UX, OSF1, Solaris, Linux, Mac OS X,
Windows. These are both commercial products available with a free
personal licence.
CMUCL, SBCL, CLISP are open source and well supported on UNIX
platforms. CMUCL+SBCL have native code compilers. I don't use these
and so I can't comment on the documentation.
If you're using OS X then OpenMCL and SBCL are both good. But if you're
using one of the new Intel Macs OpenMCL doesn't work yet. I use SBCL on
my Intel mac mini. Setup is pretty straight forward, you just download
unzip and run.
-Jeffery
On 2006-04-30 16:50:05 -0400, "Mike T" <················@gmail.com> said:
> Allegro CL supports FreeBSD, HP-UX, Linux, Solaris, Tru64, Mac OS X,
> Windows. Lispworks runs on HP-UX, OSF1, Solaris, Linux, Mac OS X,
> Windows. These are both commercial products available with a free
> personal licence.
>
> CMUCL, SBCL, CLISP are open source and well supported on UNIX
> platforms. CMUCL+SBCL have native code compilers. I don't use these
> and so I can't comment on the documentation.
En/na Jeffery Zhang ha escrit:
> If you're using OS X then OpenMCL and SBCL are both good. But if you're
> using one of the new Intel Macs OpenMCL doesn't work yet. I use SBCL on
> my Intel mac mini. Setup is pretty straight forward, you just download
> unzip and run.
Thanks Mike and Jeffery,
Right now I'm using the SBLC "Lisp in a Box" package as recommended in
the book just because it was a click-click install and start but my
question was more about which flavor than about which implementation. I
still don't have a clear idea of the difference between "classic" lisp,
Common Lisp, scheme, etc.
Please see my answer to codik
Toni wrote:
> A bit more reading in this ng seems to suggest that Common Lisp is not a
> good choice, so I'd like to have some more opinions before spending to
> much time learning the wrong stuff.
It seems that you are asking whether to learn Common Lisp, as opposed
to scheme, emacs lisp, dylan . . .? Given that you like Practical
Common Lisp, dislike the list-heavy school of lisp programming, and
have perl experience (another ugly-but-powerful language), that seems
to suggest that common lisp IS a good choice.
If you're actually asking about what implementation of common lisp to
choose, the similarities outweight the differences. Use sbcl + slime +
emacs if you don't mind a little bit of work setting up your own tools,
and lispworks otherwise.
En/na ·············@gmail.com ha escrit:
> Toni wrote:
>> A bit more reading in this ng seems to suggest that Common Lisp is not a
>> good choice, so I'd like to have some more opinions before spending to
>> much time learning the wrong stuff.
>
> It seems that you are asking whether to learn Common Lisp, as opposed
> to scheme, emacs lisp, dylan . . .? Given that you like Practical
> Common Lisp, dislike the list-heavy school of lisp programming, and
> have perl experience (another ugly-but-powerful language), that seems
> to suggest that common lisp IS a good choice.
This is precisely my doubt. I don't really dislike the list-heavy school
of lisp programming as you call it, I think I was simple not able to
understand it's potential until I read the "Practical Common Lisp" book.
In fact, by the books I had tried to read in the past I thought lisp
could not even manage strings and could only work with symbols and numbers!
I really like learning how things work so I wouldn't mind beginning
small and working my way up. As an example I learned C++' STL by writing
my own implementation. Not to say that it was a specially good
implementation, just that it is how I like learning. I did the same with
Prolog, I built my Prolog engine in Perl so that I could run the Prolog
examples I was given.
Right now I'm fascinated with lisp-in-awk but whenever I try some Common
Lisp example it is simply undoable -defun? undefined function: defun!-.
This is where I begin to see a big difference between Common Lisp and
("classic"?) lisp. I wouldn't mind writing my own lisp interpreter
(surely slow, inefficient and buggy) but to avoid repeating past
mistakes I'd like to have a "forest" picture before going for the
"trees", that's why I'd like to learn some lisp before.
> If you're actually asking about what implementation of common lisp to
> choose, the similarities outweight the differences. Use sbcl + slime +
> emacs if you don't mind a little bit of work setting up your own tools,
> and lispworks otherwise.
As I was saying in another answer this is what I'm using right now just
because it is a click-click install.
--
Toni
Toni wrote:
> I wouldn't mind writing my own lisp interpreter
> (surely slow, inefficient and buggy)
If that's the case, and you have either $70usd to spare or a good
library, find a copy of the book "Lisp in Small Pieces" and get hacking
:)
Toni <·········@gmail.com> writes:
> En/na ·············@gmail.com ha escrit:
>> Toni wrote:
>>> A bit more reading in this ng seems to suggest that Common Lisp is not a
>>> good choice, so I'd like to have some more opinions before spending to
>>> much time learning the wrong stuff.
>> It seems that you are asking whether to learn Common Lisp, as
>> opposed
>> to scheme, emacs lisp, dylan . . .? Given that you like Practical
>> Common Lisp, dislike the list-heavy school of lisp programming, and
>> have perl experience (another ugly-but-powerful language), that seems
>> to suggest that common lisp IS a good choice.
>
> This is precisely my doubt. I don't really dislike the list-heavy
> school of lisp programming as you call it, I think I was simple not
> able to understand it's potential until I read the "Practical Common
> Lisp" book. In fact, by the books I had tried to read in the past I
> thought lisp could not even manage strings and could only work with
> symbols and numbers!
<HISTORY>
Even in LISP 1.5, you could manage strings. Only strings, characters
and symbols were basically the same thing. Also, the funny thing is
that inside the LISP 1.5, symbol names were stored as _lists_ of
6-character words.
Anyways, there was some primitive functions to access to the
characters of a string (ie. symbol name).
These functions manipulate an internal buffer BOFFO.
(PACK ch) append a character to the BOFFO.
(CLEARBUFF) empties the BOFFO.
(MKNAM) builds a "string" from the characters in the BOFFO.
(NUMOB) builds a number from the characters in the BOFFO.
(UNPACK x) returns a list of characters contained in the word x.
(INTERN pname) interns a new symbol.
http://community.computerhistory.org/scc/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
See page 86.
http://www.informatimago.com/develop/lisp/lisp15-0.0.tar.gz
Apparently, you could retrieve the "name" of a symbol with:
(CAR (GET symbol (QUOTE PNAME)))
;; and:
(MAPCON (LAMBDA (WL) (UNPACK (CAR WL))) (CAR (GET symbol (QUOTE PNAME))))
;; could be used to retrieve a list of all the characters in a symbol.
So you could build a distinct string type and any string function
using these "primitives".
</HISTORY>
> I really like learning how things work so I wouldn't mind beginning
> small and working my way up. [...]
"Lisp In Small Pieces" is probably for you.
http://www-spi.lip6.fr/~queinnec/WWW/LiSP.html
http://www.amazon.com/exec/obidos/tg/detail/-/0521545668?v=glance
--
__Pascal Bourguignon__ http://www.informatimago.com/
HEALTH WARNING: Care should be taken when lifting this product,
since its mass, and thus its weight, is dependent on its velocity
relative to the user.
Pascal Bourguignon <···@informatimago.com> writes:
> and symbols were basically the same thing. Also, the funny thing is
> that inside the LISP 1.5, symbol names were stored as _lists_ of
> 6-character words.
Well, it was called LISt Processing for a reason :)
Paolo
--
Why Lisp? http://wiki.alu.org/RtL%20Highlight%20Film
The Common Lisp Directory: http://www.cl-user.net
> A bit more reading in this ng seems to suggest that Common Lisp is not a
> good choice, so I'd like to have some more opinions before spending to
> much time learning the wrong stuff.
good heavens!! :-o
Reading THIS ng seems to suggest CL is not a good choice?????
oh well, don't blame ya .......
Is there any way to put Erik Naggum's "What I want from my Common Lisp
vendor and the Common Lisp community" permanently in google's groups
front page for c.l.l. ?
Toni <·········@gmail.com> writes:
> I'd like to learn lisp but I'm confused with the many variants I'm finding.
>
> What would you recommend for an experienced programmer in other
> languages (mainly C and perl), wanting to learn lisp?
>
> Should be a well documented lisp and working in Mac OS and main UNIXes
> (Solaris, HP-UX, AIX, ...)
>
> I've found and enjoyed the "Practical Common Lisp" book, mainly
> because it starts with realistic examples, not the car/cdr/lists I had
> found in the past that lead me to the wrong conclusion that lisp was
> "only" good at processing abstract lists and could do nothing useful.
>
> A bit more reading in this ng seems to suggest that Common Lisp is not
> a good choice, so I'd like to have some more opinions before spending
> to much time learning the wrong stuff.
>
> What do you think? Ideas and criticisms welcome.
I think clisp is the best documented of the free lisps, and it works
on main UNIXes including MacOSX. Unfortunately, I don't think it
would work on MacOS. At least recent versions. Perhaps some older
version of clisp worked on MacOS, after all clisp worked on Amiga...
--
__Pascal Bourguignon__ http://www.informatimago.com/
"You question the worthiness of my code? I should kill you where you
stand!"
En/na Pascal Bourguignon ha escrit:
> Toni <·········@gmail.com> writes:
>
>> I'd like to learn lisp but I'm confused with the many variants I'm finding.
>>
>> What would you recommend for an experienced programmer in other
>> languages (mainly C and perl), wanting to learn lisp?
>>
>> Should be a well documented lisp and working in Mac OS and main UNIXes
>> (Solaris, HP-UX, AIX, ...)
>
> I think clisp is the best documented of the free lisps, and it works
> on main UNIXes including MacOSX. Unfortunately, I don't think it
> would work on MacOS. At least recent versions. Perhaps some older
> version of clisp worked on MacOS, after all clisp worked on Amiga...
Hi Pascal,
I've been trying to compile clisp in OS X and, effectively it seems not
to support it. Behind not following the standard configure + make + make
install sequence it gets to a point which seems to be
processor-dependent and ppc is not among the options.
I guess I'll stick with SBLC right now and defer my decision to when I
have some more lisp experience.
Thanks,
--
Toni
Toni <·········@gmail.com> writes:
> En/na Pascal Bourguignon ha escrit:
>> Toni <·········@gmail.com> writes:
>>
>>> I'd like to learn lisp but I'm confused with the many variants I'm finding.
>>>
>>> What would you recommend for an experienced programmer in other
>>> languages (mainly C and perl), wanting to learn lisp?
>>>
>>> Should be a well documented lisp and working in Mac OS and main UNIXes
>>> (Solaris, HP-UX, AIX, ...)
>> I think clisp is the best documented of the free lisps, and it works
>> on main UNIXes including MacOSX. Unfortunately, I don't think it
>> would work on MacOS. At least recent versions. Perhaps some older
>> version of clisp worked on MacOS, after all clisp worked on Amiga...
>
> Hi Pascal,
>
> I've been trying to compile clisp in OS X and, effectively it seems
> not to support it. Behind not following the standard configure + make
> + make install sequence it gets to a point which seems to be
> processor-dependent and ppc is not among the options.
Oh no, you misunderstood me. Current clisp won't work on MacOS, but
it works perfectly well on MacOSX. Remember that MacOSX is a plain
UNIX system. I routinely use this script to compile clisp-2.38 on
MacOSX:
#!/bin/bash
version=$(awk -F= '/PACKAGE_VERSION=/{print substr($2,2,index($2," ")-2);}' ./src/configure)
rm -rf /tmp/clisp-${version}-build/
time ./configure \
--prefix=/usr/local/languages/clisp-${version} \
$(for m in \
clx/new-clx \
rawsock \
regexp \
syscalls \
; do \
if expr "$m" : 'i18n\|regexp\|syscalls' >/dev/null;\
then true already there ;\
else echo -n "--with-module=$m " ;\
fi ; done) \
--build /tmp/clisp-${version}-build \
--install
[···@thalassa pjb]$ ssh ······@ABayonne
Last login: Mon Apr 24 06:13:52 2006 from 62.93.174.79
Welcome to Darwin!
tset: can't initialize terminal type emacs (error -1)
Terminal type? emacs
tset: can't initialize terminal type emacs (error -1)
Terminal type? xterm
guardacasa:~ pascal$ clisp
clisp
i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2005
[1]> *features*
*features*
(:REGEXP :SYSCALLS :I18N :LOOP :COMPILER :CLOS :MOP :CLISP :ANSI-CL
:COMMON-LISP :LISP=CL :INTERPRETER :SOCKETS :GENERIC-STREAMS
:LOGICAL-PATHNAMES :SCREEN :FFI :UNICODE :BASE-CHAR=CHARACTER :UNIX :MACOS)
[2]> (ext:shell "hostinfo")
(ext:shell "hostinfo")
Mach kernel version:
Darwin Kernel Version 7.9.0:
Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC
Kernel configured for a single processor only.
1 processor is physically available.
Processor type: ppc7450 (PowerPC 7450)
Processor active: 0
Primary memory available: 384.00 megabytes.
Default processor set: 54 tasks, 110 threads, 1 processors
Load average: 0.00, Mach factor: 0.99
38
[3]> (quit)
(quit)
Bye.
guardacasa:~ pascal$
--
__Pascal Bourguignon__ http://www.informatimago.com/
"Specifications are for the weak and timid!"