From: Santanu Chatterjee
Subject: which lisp book ?
Date: 
Message-ID: <pan.2003.10.12.19.34.46.823941@softhome.net>
Hello everybody,

Python people seems to be talking about lisp all the time,
so I got somewhat interested and subscribed to this newsgroup.
(Here, Python seems to be discussed, too)

So, what's so common between python and lisp? To me (I know
absolutely nothing about lisp) they sure seem _very_ different.

Maybe I should learn Lisp a little to find out. So, I found an
online book 'OnLisp' by Paul Graham, but it says, I need to know
some lisp to understand it. Can anyone suggest any _short_ online
Common Lisp book that will teach me enough CLISP to be able to
understand 'OnLisp' ? (I already know C & Python)

Regards,
Santanu

From: Karl A. Krueger
Subject: Re: which lisp book ?
Date: 
Message-ID: <bmcb90$7p5$1@baldur.whoi.edu>
Santanu Chatterjee <·······@softhome.net> wrote:
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.

I'm rather new to Lisp still, but I find it interesting to draw up a
list of some of the similarities and differences I've found, also
coming from a Python background.  Please don't take this as a
statement by either a "Lisper" or a "Pythonisto" -- I'm just a
security systems administrator who uses Python regularly and is trying
to understand Lisp as well ....


They're both multi-paradigm languages with strong functional and
object-oriented tools, introspection, and an interactive prompt
(read-eval-print loop).  They're both "practical" languages which,
while they incorporate a lot of thought from computer science
research, are intended for "real-world" programming.

They both have syntaxes which confuse people used to languages like
C and Java.  (That said, their syntaxes are very different from one
another.)

They are both rather strong at dealing with complex data structures,
more so either than low-level languages like C or text-processing
languages like Perl.  Likewise, they both have a lot of data types
built into the language, rather than as add-on libraries -- diverse
numeric types, hash tables, lists, and so forth.

Both support higher-order functions and lexical scoping; thus, both
can support (e.g.) closures.

Both are strongly but dynamically typed.  Lisp allows the programmer
to specify types of function arguments, which serve as an optimization
aid to the compiler.  Likewise, both have automatic memory management
(garbage collection) and separate the user from having to deal with
the explicit allocation of memory.


Someone coming to both from the direction of C, Perl, or Visual Basic
is likely to see a lot of similarities, despite the blatant visible
syntax differences.  That said, they have a lot of differences aside
from syntax, too.

In the object-oriented space, Python is a single-dispatch language
(methods are defined on classes) while Lisp is a multiple-dispatch
language (methods are defined on tuples of argument types).  Python is
also pervasively object-oriented (just about every variable can be
treated as an object, has methods, and so forth) while Lisp isn't.

Lisp uses classes as a more powerful sort of structure definition.
Python uses classes as a general-purpose construct, serving the
purposes of Lisp classes and structures as well as some of the roles
for which Lisp uses symbols.  (Or, put another way, Python classes are
a lot like Lisp symbols -- they have identity, can carry around
properties, can stand for callable functions, are used for exceptions,
and so forth.  They _also_ serve the purpose of classes in OOP.)

Neither language supports strenuous OOP access control of the sort
found in C++; if you can name a data element of an object, you can
access it and change it.  (This drives some OOP ideologues batty.)

Lisp has an immensely powerful macro system which allows programmers
to define new syntactical constructs.  Python has a clear distinction
between syntax and user functions, although one can do some "macro-
like" things using higher-order functions in Python.  The importance
of the Lisp macro system cannot be understated, though -- to Lispers,
writing macros is not at all an unusual or remarkable thing; it is
simply part of how the language works.


Both languages are to a certain extent misunderstood by those who have
not used them.  (This is probably true of all languages!)  People
coming from C-like languages criticize the syntax of both, largely
because it is unfamiliar to them:  Python seems to use too little
punctuation, while Lisp seems to use too much!  In the case of Lisp,
this is a conscious choice to keep the language close to its own
syntax-tree internal representation; in Python, it is a conscious
choice to ensure that the visible representation matches the block
structure.

Another thing common in these misinterpretations is the claim that
either is an "interpreted language".  Python is bytecode-compiled,
like Java, with a native-code compiler under development for some
platforms.  Lisp can be either interpreted or compiled; production
implementations mostly feature native-code compilation on demand,
while one popular one (CLISP) does bytecode.  Lisp is probably unique
among languages in allowing extensive interaction between the user,
interpreted code, and compiled code: from the Lisp prompt one can
compile, disassemble, and trace arbitrary code, as well as call
interpreted functions from compiled ones and vice versa.

In a sense, Python is more abstract than either C or Lisp.  Just as C
places the programmer close to the binary representation and the
underlying hardware, Lisp places the programmer close to the syntax
representation, the reader, and the compiler or interpreter.  Python
does neither, not allowing the programmer to manipulate binary
structure in memory (like C) or syntactic structure in the program
syntax tree (like Lisp).  Put another way, Python is more restrictive
than either C or Lisp ....


Culturally Python and Lisp are vastly different.  While both are bound
between the world of research and that of practical programming, Lisp
has a much longer tradition behind it, and the tensions between
academe and industry are more an elemental part of its culture.  (Just
listen in on any Lisp-vs.-Scheme discussion.)

The Python culture is connected to the Unix and Free Software (or Open
Source) cultures; while it has made many efforts to extend itself to
other platforms, it's in many ways a product of Unix, for instance in
its ways of handling files and the network.  It is also closely tied
to Free Software -- Python itself is a Free Software product, with
many developers contributing back to a single code base, while Lisp is
a more industrial product with many commercial vendors (as well as
open-source developers) separately implementing and extending an
American (ANSI) industrial standard, namely Common Lisp.

It should be noted:  Lisp pre-dates both Unix and Free Software, and
there are some deep-seated disagreements between Lispers and both Unix
fans and Free Software partisans.

(Python is also connected to the Unix idea of "scripting" and the use
of disparate languages for different purposes.  Thus, Python users do
not consider it a weakness that the language is extended in C rather
than being self-hosting.  This may reflect a deeper disconnect in
various people's views as to what a "computer language" is!)

Modern Lisp is the direct, lineal heir to a computing tradition going
back almost fifty years, to before the dawn of anything new users
would recognize as a "modern" computer system.  This manifests both in
its syntax and its culture:  there are features Lisp has that no other
current computing system does, and Lispers know it.  Python, on the
other hand, is a comparatively brand-new system, which "cherry-picks"
features from the history of computing languages, fitting them into a
minimal system which seems almost ahistorically abstract.

-- 
Karl A. Krueger <········@example.edu>
Woods Hole Oceanographic Institution
Email address is spamtrapped.  s/example/whoi/
"Outlook not so good." -- Magic 8-Ball Software Reviews
From: Kenny Tilton
Subject: Re: which lisp book ?
Date: 
Message-ID: <udkib.73360$lZ6.11744713@twister.nyc.rr.com>
Wow. Great essay. If you are new to Lisp, I have to say you must be a 
very quick study. I was also going to pester you about adding your name to:

    http://alu.cliki.net/The%20Road%20to%20Lisp%20Survey

...when I realized your name looked familiar. :)

I was wondering why no one had yet offered Norvig's piece to the OP:

    http://www.norvig.com/python-lisp.html

But yours seems a lot more substantive.

kenny

Karl A. Krueger wrote:

> Santanu Chatterjee <·······@softhome.net> wrote:
> 
>>So, what's so common between python and lisp? To me (I know
>>absolutely nothing about lisp) they sure seem _very_ different.
> 
> 
> I'm rather new to Lisp still, but I find it interesting to draw up a
> list of some of the similarities and differences I've found, also
> coming from a Python background.  Please don't take this as a
> statement by either a "Lisper" or a "Pythonisto" -- I'm just a
> security systems administrator who uses Python regularly and is trying
> to understand Lisp as well ....
> 
> 
> They're both multi-paradigm languages with strong functional and
> object-oriented tools, introspection, and an interactive prompt
> (read-eval-print loop).  They're both "practical" languages which,
> while they incorporate a lot of thought from computer science
> research, are intended for "real-world" programming.
> 
> They both have syntaxes which confuse people used to languages like
> C and Java.  (That said, their syntaxes are very different from one
> another.)
> 
> They are both rather strong at dealing with complex data structures,
> more so either than low-level languages like C or text-processing
> languages like Perl.  Likewise, they both have a lot of data types
> built into the language, rather than as add-on libraries -- diverse
> numeric types, hash tables, lists, and so forth.
> 
> Both support higher-order functions and lexical scoping; thus, both
> can support (e.g.) closures.
> 
> Both are strongly but dynamically typed.  Lisp allows the programmer
> to specify types of function arguments, which serve as an optimization
> aid to the compiler.  Likewise, both have automatic memory management
> (garbage collection) and separate the user from having to deal with
> the explicit allocation of memory.
> 
> 
> Someone coming to both from the direction of C, Perl, or Visual Basic
> is likely to see a lot of similarities, despite the blatant visible
> syntax differences.  That said, they have a lot of differences aside
> from syntax, too.
> 
> In the object-oriented space, Python is a single-dispatch language
> (methods are defined on classes) while Lisp is a multiple-dispatch
> language (methods are defined on tuples of argument types).  Python is
> also pervasively object-oriented (just about every variable can be
> treated as an object, has methods, and so forth) while Lisp isn't.
> 
> Lisp uses classes as a more powerful sort of structure definition.
> Python uses classes as a general-purpose construct, serving the
> purposes of Lisp classes and structures as well as some of the roles
> for which Lisp uses symbols.  (Or, put another way, Python classes are
> a lot like Lisp symbols -- they have identity, can carry around
> properties, can stand for callable functions, are used for exceptions,
> and so forth.  They _also_ serve the purpose of classes in OOP.)
> 
> Neither language supports strenuous OOP access control of the sort
> found in C++; if you can name a data element of an object, you can
> access it and change it.  (This drives some OOP ideologues batty.)
> 
> Lisp has an immensely powerful macro system which allows programmers
> to define new syntactical constructs.  Python has a clear distinction
> between syntax and user functions, although one can do some "macro-
> like" things using higher-order functions in Python.  The importance
> of the Lisp macro system cannot be understated, though -- to Lispers,
> writing macros is not at all an unusual or remarkable thing; it is
> simply part of how the language works.
> 
> 
> Both languages are to a certain extent misunderstood by those who have
> not used them.  (This is probably true of all languages!)  People
> coming from C-like languages criticize the syntax of both, largely
> because it is unfamiliar to them:  Python seems to use too little
> punctuation, while Lisp seems to use too much!  In the case of Lisp,
> this is a conscious choice to keep the language close to its own
> syntax-tree internal representation; in Python, it is a conscious
> choice to ensure that the visible representation matches the block
> structure.
> 
> Another thing common in these misinterpretations is the claim that
> either is an "interpreted language".  Python is bytecode-compiled,
> like Java, with a native-code compiler under development for some
> platforms.  Lisp can be either interpreted or compiled; production
> implementations mostly feature native-code compilation on demand,
> while one popular one (CLISP) does bytecode.  Lisp is probably unique
> among languages in allowing extensive interaction between the user,
> interpreted code, and compiled code: from the Lisp prompt one can
> compile, disassemble, and trace arbitrary code, as well as call
> interpreted functions from compiled ones and vice versa.
> 
> In a sense, Python is more abstract than either C or Lisp.  Just as C
> places the programmer close to the binary representation and the
> underlying hardware, Lisp places the programmer close to the syntax
> representation, the reader, and the compiler or interpreter.  Python
> does neither, not allowing the programmer to manipulate binary
> structure in memory (like C) or syntactic structure in the program
> syntax tree (like Lisp).  Put another way, Python is more restrictive
> than either C or Lisp ....
> 
> 
> Culturally Python and Lisp are vastly different.  While both are bound
> between the world of research and that of practical programming, Lisp
> has a much longer tradition behind it, and the tensions between
> academe and industry are more an elemental part of its culture.  (Just
> listen in on any Lisp-vs.-Scheme discussion.)
> 
> The Python culture is connected to the Unix and Free Software (or Open
> Source) cultures; while it has made many efforts to extend itself to
> other platforms, it's in many ways a product of Unix, for instance in
> its ways of handling files and the network.  It is also closely tied
> to Free Software -- Python itself is a Free Software product, with
> many developers contributing back to a single code base, while Lisp is
> a more industrial product with many commercial vendors (as well as
> open-source developers) separately implementing and extending an
> American (ANSI) industrial standard, namely Common Lisp.
> 
> It should be noted:  Lisp pre-dates both Unix and Free Software, and
> there are some deep-seated disagreements between Lispers and both Unix
> fans and Free Software partisans.
> 
> (Python is also connected to the Unix idea of "scripting" and the use
> of disparate languages for different purposes.  Thus, Python users do
> not consider it a weakness that the language is extended in C rather
> than being self-hosting.  This may reflect a deeper disconnect in
> various people's views as to what a "computer language" is!)
> 
> Modern Lisp is the direct, lineal heir to a computing tradition going
> back almost fifty years, to before the dawn of anything new users
> would recognize as a "modern" computer system.  This manifests both in
> its syntax and its culture:  there are features Lisp has that no other
> current computing system does, and Lispers know it.  Python, on the
> other hand, is a comparatively brand-new system, which "cherry-picks"
> features from the history of computing languages, fitting them into a
> minimal system which seems almost ahistorically abstract.
> 

-- 
http://tilton-technology.com
What?! You are a newbie and you haven't answered my:
  http://alu.cliki.net/The%20Road%20to%20Lisp%20Survey
From: Edi Weitz
Subject: Re: which lisp book ?
Date: 
Message-ID: <87fzhyujws.fsf@bird.agharta.de>
On Sun, 12 Oct 2003 19:49:54 +0000 (UTC), "Karl A. Krueger" <········@example.edu> wrote:

> I'm rather new to Lisp still, but I find it interesting to draw up a
> list of some of the similarities and differences I've found, also
> coming from a Python background.  Please don't take this as a
> statement by either a "Lisper" or a "Pythonisto" -- I'm just a
> security systems administrator who uses Python regularly and is
> trying to understand Lisp as well ....
> 
> [snip]

Great article!

Thanks,
Edi.
From: Kenny Tilton
Subject: Re: which lisp book ?
Date: 
Message-ID: <eAlib.73369$lZ6.11777344@twister.nyc.rr.com>
Edi Weitz wrote:
> On Sun, 12 Oct 2003 19:49:54 +0000 (UTC), "Karl A. Krueger" <········@example.edu> wrote:
> 
> 
>>I'm rather new to Lisp still, but I find it interesting to draw up a
>>list of some of the similarities and differences I've found, also
>>coming from a Python background.  Please don't take this as a
>>statement by either a "Lisper" or a "Pythonisto" -- I'm just a
>>security systems administrator who uses Python regularly and is
>>trying to understand Lisp as well ....
>>
>>[snip]
> 
> 
> Great article!

It should be preserved. How about here?:

      http://alu.cliki.net/Evaluate%20Lisp

?

-- 
http://tilton-technology.com
What?! You are a newbie and you haven't answered my:
  http://alu.cliki.net/The%20Road%20to%20Lisp%20Survey
From: Karl A. Krueger
Subject: Re: which lisp book ?
Date: 
Message-ID: <bmd2d6$f4m$1@baldur.whoi.edu>
Kenny Tilton <·······@nyc.rr.com> wrote:
> Edi Weitz wrote:
>> Great article!
> 
> It should be preserved. How about here?:
>      http://alu.cliki.net/Evaluate%20Lisp
> ?

Well thanks.  :)  I put it here:

http://alu.cliki.net/Comparing%20Lisp%20and%20Python

-- 
Karl A. Krueger <········@example.edu>
Woods Hole Oceanographic Institution
Email address is spamtrapped.  s/example/whoi/
"Outlook not so good." -- Magic 8-Ball Software Reviews
From: james anderson
Subject: Re: which lisp book ?
Date: 
Message-ID: <3F89EC1E.9E227F15@setf.de>
interesting  reading.

there are two points which could bear refinement.

"Karl A. Krueger" wrote:
> 
> ...
> 
> In the object-oriented space, Python is a single-dispatch language
> (methods are defined on classes) while Lisp is a multiple-dispatch
> language (methods are defined on tuples of argument types).  Python is
> also pervasively object-oriented (just about every variable can be
> treated as an object, has methods, and so forth) while Lisp isn't.

as was noted above, lisp classes do not "have" methods, while, on the other
hand, every lisp data object does have a class, so the distinction misleads.
in particular, in that one can specialize methods on any class, including the
built-in classes. there are restrictions on this which have to do with
portability, but they are distinct from the mechanism. the more essential
distinction might be that all python classes can be specialized (if that is
so?), while that is not true for lisp's built-in classes. which means that
those of the standard types which correspond to built-in classes are subject
to certain restrictions.

> 
> ...
> 
> Neither language supports strenuous OOP access control of the sort
> found in C++; if you can name a data element of an object, you can
> access it and change it.  (This drives some OOP ideologues batty.)
> 

while lisp does not enforce access control of the sort found in c++, it is
certainly possible to implement such controls and to enforce them in a
specialized language. there was a thread some months back about how one could,
for example, emulate java's visibility rules.

> ...

...
From: Kenny Tilton
Subject: Re: which lisp book ?
Date: 
Message-ID: <yRmib.73378$lZ6.11815795@twister.nyc.rr.com>
james anderson wrote:
> interesting  reading.
> 
> there are two points which could bear refinement.
> 
> "Karl A. Krueger" wrote:
> 

>>Neither language supports strenuous OOP access control of the sort
>>found in C++; if you can name a data element of an object, you can
>>access it and change it.  (This drives some OOP ideologues batty.)
>>
> 
> 
> while lisp does not enforce access control of the sort found in c++, it is
> certainly possible to implement such controls and to enforce them in a
> specialized language. there was a thread some months back about how one could,
> for example, emulate java's visibility rules.

What makes me think it involved macros? :)

-- 
http://tilton-technology.com
What?! You are a newbie and you haven't answered my:
  http://alu.cliki.net/The%20Road%20to%20Lisp%20Survey
From: Karl A. Krueger
Subject: Re: which lisp book ?
Date: 
Message-ID: <bmeea4$sc4$1@baldur.whoi.edu>
james anderson <··············@setf.de> wrote:
> "Karl A. Krueger" wrote:
>> In the object-oriented space, Python is a single-dispatch language
>> (methods are defined on classes) while Lisp is a multiple-dispatch
>> language (methods are defined on tuples of argument types).  Python is
>> also pervasively object-oriented (just about every variable can be
>> treated as an object, has methods, and so forth) while Lisp isn't.
> 
> as was noted above, lisp classes do not "have" methods, while, on the other
> hand, every lisp data object does have a class, so the distinction misleads.
> in particular, in that one can specialize methods on any class, including the
> built-in classes. there are restrictions on this which have to do with
> portability, but they are distinct from the mechanism. the more essential
> distinction might be that all python classes can be specialized (if that is
> so?), while that is not true for lisp's built-in classes. which means that
> those of the standard types which correspond to built-in classes are subject
> to certain restrictions.

In Python, you can subclass a built-in type, like "int" in the following
example, in which FunkyInt is just an integer that prints out a string
when it gets initialized:

>>> class FunkyInt(int):
...    def __init__(self, num):
...       print "Oh, I'm a funky integer, my name is %s" % self
...
>>> foo = FunkyInt(5.5)
Oh, I'm a funky integer, my name is 5
>>> foo
5
>>>

In this way you can also add methods to (your subclass of) a built-in
type.  (You can't go and define new methods upon the built-in type
itself, though.)

I've revised that section in the article on the wiki, though; perhaps
it is more clear now.


> while lisp does not enforce access control of the sort found in c++, it is
> certainly possible to implement such controls and to enforce them in a
> specialized language. there was a thread some months back about how one could,
> for example, emulate java's visibility rules.

Of course!  It is possible to do anything in a specialized language.
That doesn't mean CLOS is a bondage-and-discipline OO system like C++.
(Good thing, too.)

-- 
Karl A. Krueger <········@example.edu>
Woods Hole Oceanographic Institution
Email address is spamtrapped.  s/example/whoi/
"Outlook not so good." -- Magic 8-Ball Software Reviews
From: james anderson
Subject: Re: which lisp book ?
Date: 
Message-ID: <3F8AD0BF.15F15BAA@setf.de>
"Karl A. Krueger" wrote:
> 
> 
> 
> > while lisp does not enforce access control of the sort found in c++, it is
> > certainly possible to implement such controls and to enforce them in a
> > specialized language. there was a thread some months back about how one could,
> > for example, emulate java's visibility rules.
> 
> Of course!  It is possible to do anything in a specialized language.
> That doesn't mean CLOS is a bondage-and-discipline OO system like C++.
> (Good thing, too.)
> 

the remark concerned specifically the word "support", in the claim, to quote
again, that "neither language supports strenuous oop access control." c++ i
try to read only, but i suggest that just combinations of package operations -
that is without even the benefit of macros to make the combinations palatable,
it is possible to implement far more strenuous access controls than i have
ever had to suffer through in java. no specialized language required, just lisp.

i do not mean to pick nits, but as i would expect that that document will
stand on its own, it would be unfortunate if its characterizations were misconstrued.

...
From: Jon S. Anthony
Subject: Re: which lisp book ?
Date: 
Message-ID: <m3n0c53vgl.fsf@rigel.goldenthreadtech.com>
"Karl A. Krueger" <········@example.edu> writes:

[a very nice summary of Lisp & Python aspects]

Nicely done.  Congrats.

/Jon
From: Santanu Chatterjee
Subject: Re: which lisp book ?
Date: 
Message-ID: <pan.2003.10.13.16.18.50.505998@softhome.net>
On Sun, 12 Oct 2003 19:49:54 +0000, Karl A. Krueger wrote:

> Santanu Chatterjee <·······@softhome.net> wrote:
>> So, what's so common between python and lisp? To me (I know absolutely
>> nothing about lisp) they sure seem _very_ different.
> 
> I'm rather new to Lisp still, but I find it interesting to draw up a list
> of some of the similarities and differences I've found, also coming from a
> Python background.  Please don't take this as a statement by either a
> "Lisper" or a "Pythonisto" -- I'm just a security systems administrator
> who uses Python regularly and is trying to understand Lisp as well ....

Thanks for the excellent article. I just connected to the Net today,
and got your article. I am taking a print out of this.

Thanks again.

Regards,
Santanu
From: Edi Weitz
Subject: Re: which lisp book ?
Date: 
Message-ID: <87brsm1btm.fsf@bird.agharta.de>
On Mon, 13 Oct 2003 00:35:58 +0500, "Santanu Chatterjee" <·······@softhome.net> wrote:

> Python people seems to be talking about lisp all the time, so I got
> somewhat interested and subscribed to this newsgroup.  (Here, Python
> seems to be discussed, too)
> 
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
> 
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)

That's a strange goal. Why don't you want to learn enough of the
language to understand one particular book? Just because it happens to
be there and you don't have to pay for it? Hmm...

Anyway, "On Lisp" is a great book but it certainly is for advanced
Lisp programmers. Googling a bit should have revealed something like

  <http://www.lisp.org/alu/res-lisp-education.clp>.

I think that's enough material to start with.

Or you might want to take a look at

  <http://www.google.com/groups?selm=m3lls0zoty.fsf%40javamonkey.com>

BTW, we usually call it "Common Lisp" - CLISP is the name of a
specific implementation.

Edi.
From: Santanu Chatterjee
Subject: Re: which lisp book ?
Date: 
Message-ID: <pan.2003.10.12.20.02.25.89358@softhome.net>
On Sun, 12 Oct 2003 21:43:33 +0200, Edi Weitz wrote:

> On Mon, 13 Oct 2003 00:35:58 +0500, "Santanu Chatterjee"
> <·······@softhome.net> wrote:

>> Maybe I should learn Lisp a little to find out. So, I found an online
>> book 'OnLisp' by Paul Graham, but it says, I need to know some lisp to
>> understand it. Can anyone suggest any _short_ online Common Lisp book
>> that will teach me enough CLISP to be able to understand 'OnLisp' ? (I
>> already know C & Python)
> 
> That's a strange goal. Why don't you want to learn enough of the language
> to understand one particular book? Just because it happens to be there and
> you don't have to pay for it? Hmm...

Not exactly because it's free. I visited Paul Graham's web site, and read
some of his articles, and liked his way of explaining things. So, I tried to find
'ANSI Common Lisp' in the local book stores, but it's not available. (In
fact, I found that the book is not available as an Indian edition at all.) So I
made it a point to go for 'OnLisp'

> Anyway, "On Lisp" is a great book but it certainly is for advanced Lisp
> programmers. Googling a bit should have revealed something like
> 
>   <http://www.lisp.org/alu/res-lisp-education.clp>.

Thanks for the link. Google had turned out too many links, and I had not
explored most of them.

I found a book 'Common Lisp: A Gentle Introduction to Symbolic
Computation'
It seems to be nice. I also found 
'Basic Lisp Techniques by David Cooper'. Its quite small. I don't know
whether reading it will be enough to understand 'OnLisp'

Regards,
Santanu
From: Pascal Costanza
Subject: Re: which lisp book ?
Date: 
Message-ID: <bmcav2$bnj$1@newsreader2.netcologne.de>
Santanu Chatterjee wrote:
> Hello everybody,
> 
> Python people seems to be talking about lisp all the time,
> so I got somewhat interested and subscribed to this newsgroup.

Welcome!

> (Here, Python seems to be discussed, too)
> 
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
> 
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)

Usually, you should get a good list of links at http://alu.cliki.net - 
however, at the moment I am having difficulties accessing it.

Some time ago, I have written a guide to Lisp at 
http://www.pascalcostanza.de/lisp/guide.html - it was mainly written 
from a Java perspective but it nevertheless includes several links that 
might be of interest to you.

Furthermore, you might be interested in 
http://www.norvig.com/python-lisp.html


Have fun!

Pascal
From: Santanu Chatterjee
Subject: Re: which lisp book ?
Date: 
Message-ID: <pan.2003.10.12.20.05.29.178141@softhome.net>
On Sun, 12 Oct 2003 21:44:32 +0200, Pascal Costanza wrote:

> Furthermore, you might be interested in
> http://www.norvig.com/python-lisp.html

Thanks for this link. Very informative, especially
the lisp equivalents to python statements.

Regards,
Santanu
From: Bruce Stephens
Subject: Re: which lisp book ?
Date: 
Message-ID: <871xtiqefs.fsf@cenderis.demon.co.uk>
"Santanu Chatterjee" <·······@softhome.net> writes:

> Python people seems to be talking about lisp all the time,
> so I got somewhat interested and subscribed to this newsgroup.
> (Here, Python seems to be discussed, too)
>
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
>
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)

Common Lisp the Language:
<http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/cltl2.html>

You'll have seen Peter Seibel's article about a book he's writing,
various chapters of which are in various states of completion.  I
think the book's looking very good, and it's well worth looking at
what's there.

The language standard (hyperspec) is also available at various places.
But it's a standard, more suitable for reference than for learning the
language.
From: Paolo Amoroso
Subject: Re: which lisp book ?
Date: 
Message-ID: <8765itl1z5.fsf@plato.moon.paoloamoroso.it>
Santanu Chatterjee writes:

> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)

You may check David Lamkins' "Successful Lisp". I don't have the URL
handy, but it should be easy to find it.


Paolo
-- 
Paolo Amoroso <·······@mclink.it>
From: james anderson
Subject: Re: which lisp book ?
Date: 
Message-ID: <3F8AAC9F.FA265828@setf.de>
http://www.psg.com/~dlamkins/sl/cover.html

Paolo Amoroso wrote:
> 
> Santanu Chatterjee writes:
> 
> > some lisp to understand it. Can anyone suggest any _short_ online
> > Common Lisp book that will teach me enough CLISP to be able to
> > understand 'OnLisp' ? (I already know C & Python)
> 
> You may check David Lamkins' "Successful Lisp". I don't have the URL
> handy, but it should be easy to find it.
> 
> Paolo
> --
> Paolo Amoroso <·······@mclink.it>
From: Peter Seibel
Subject: Re: which lisp book ?
Date: 
Message-ID: <m3n0c5ey3b.fsf@javamonkey.com>
"Santanu Chatterjee" <·······@softhome.net> writes:

> Hello everybody,
> 
> Python people seems to be talking about lisp all the time, so I got
> somewhat interested and subscribed to this newsgroup. (Here, Python
> seems to be discussed, too)
> 
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
> 
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)

Edi Weitz gave you an indirect pointer to my announcement here a few
weeks ago of some chapters of the book I'm working on for Apress.

It's not done yet so there are large sections in outline only form but
it *is* targeted to people just like you--people who know some other
language already and are curious about Lisp. So I'd be happy to hear
any feedback you have on the chapters at:

  <http://www.gigamonkeys.com/book/>

-Peter

-- 
Peter Seibel                                      ·····@javamonkey.com

         Lisp is the red pill. -- John Fraser, comp.lang.lisp
From: Santanu Chatterjee
Subject: Re: which lisp book ?
Date: 
Message-ID: <pan.2003.10.14.12.39.19.437660@softhome.net>
On Mon, 13 Oct 2003 19:30:57 +0000, Peter Seibel wrote:

> "Santanu Chatterjee" <·······@softhome.net> writes:
> 
>> Maybe I should learn Lisp a little to find out. So, I found an online
>> book 'OnLisp' by Paul Graham, but it says, I need to know some lisp to
>> understand it. Can anyone suggest any _short_ online Common Lisp book
>> that will teach me enough CLISP to be able to understand 'OnLisp' ? (I
>> already know C & Python)
> 
> Edi Weitz gave you an indirect pointer to my announcement here a few weeks
> ago of some chapters of the book I'm working on for Apress.
> 
> It's not done yet so there are large sections in outline only form but it
> *is* targeted to people just like you--people who know some other language
> already and are curious about Lisp. So I'd be happy to hear any feedback
> you have on the chapters at:
> 
>   <http://www.gigamonkeys.com/book/>

Thanks for the link. I have finally settled on two online
tutorials/books: 
1.The chapters from your book available at the above mentioned site, and
2.Successful Lisp -by David Lamkins

As soon as I finish reading through the sections of your book, I will
post my feedback.

By the way, I liked the Introduction part where you referred to the ESR
article 'How to become a hacker', which I have read at least a dozen
times.

Regards,
Santanu
From: Lord Isildur
Subject: Re: which lisp book ?
Date: 
Message-ID: <Pine.LNX.4.58-035.0310241313010.6280@unix44.andrew.cmu.edu>
two books come to mind. the first is alternately the Green Book and the
Aluminum Book, these being more or less twin brother volumes:
Common Lisp: the language
Common Lisp: the reference
by guy steele. Theyre the Lisp equivalent of a mix of the K&R book and
the harbison&steele book for the C world.
The second book is an intro, entitled
Lisp: a gentle introduction to symbolic computation,
by david touretzky. my copy has a gaudy bright cover and an almost cheesy
looking font, but its a good intro into lisp for non-programmers.
I dont think the touretzky text is still in print, but i'd expect Steele to
still be

Isildur


On Mon, 13 Oct 2003, Santanu Chatterjee wrote:

> Hello everybody,
>
> Python people seems to be talking about lisp all the time,
> so I got somewhat interested and subscribed to this newsgroup.
> (Here, Python seems to be discussed, too)
>
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
>
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)
>
> Regards,
> Santanu
>
From: Carl Shapiro
Subject: Re: which lisp book ?
Date: 
Message-ID: <ouyu15yv5t8.fsf@panix3.panix.com>
Lord Isildur <·······@andrew.cmu.edu> writes:

> Common Lisp: the language
> Common Lisp: the reference

Common Lisp: The Reference, which was published by Franz, is a now
horribly out-of-date referece which corresponds only to the 1984 first
edition of Common Lisp: The Language.  Unlike the HyperSpec, is not a
useful reference for the ANSI standard.

> I dont think the touretzky text is still in print, but i'd expect Steele to
> still be

The Touretzky book is on-line: http://www-2.cs.cmu.edu/~dst/LispBook/
From: Edi Weitz
Subject: Re: which lisp book ?
Date: 
Message-ID: <87ptglw3xq.fsf@bird.agharta.de>
On 24 Oct 2003 14:39:15 -0400, Carl Shapiro <·············@panix.com> wrote:

> Common Lisp: The Reference, which was published by Franz, is a now
> horribly out-of-date referece which corresponds only to the 1984
> first edition of Common Lisp: The Language.  Unlike the HyperSpec,
> is not a useful reference for the ANSI standard.

Looks like it's going to be updated soon:

  <http://www.apress.com/book/bookDisplay.html?bID=263>

Edi.
From: david emile lamy
Subject: Re: which lisp book ?
Date: 
Message-ID: <87brs57v2a.fsf@localhost.i-did-not-set--mail-host-address--so-shoot-me>
On Mon, 13 Oct 2003, Santanu Chatterjee wrote:

> Hello everybody,
>
> Python people seems to be talking about lisp all the time,
> so I got somewhat interested and subscribed to this newsgroup.
> (Here, Python seems to be discussed, too)
>
> So, what's so common between python and lisp? To me (I know
> absolutely nothing about lisp) they sure seem _very_ different.
>
> Maybe I should learn Lisp a little to find out. So, I found an
> online book 'OnLisp' by Paul Graham, but it says, I need to know
> some lisp to understand it. Can anyone suggest any _short_ online
> Common Lisp book that will teach me enough CLISP to be able to
> understand 'OnLisp' ? (I already know C & Python)
>
> Regards,
> Santanu
>

Hi, 

I think expecting that a short tutorial (book) will prepare you for "On Lisp" 
is not a realistic expectation.  However, Touretzky's "Common Lisp: A Gentle
Introduction to Symbolic Computation" is a wonderful book.  Try googling for 
an online lisp tutorial by Lampkins as well.

However, since I am confident that you will come to love lisp, then consider
purchasing (or checking out of a library):

"ANSI Common Lisp" by Paul Graham
"Lisp, 3rd Edition" by Winston and Horn
"Structure and Interpretation of Computer Programs" by Abelson and the Sussmans

Each one gives a perspective into lisp methodology and are thought provoking.
Be patient, lisp is a powerful language that will reward your efforts! (It has
mine anyways.)

By the way, CLISP is an ANSI standard lisp like CMUCL, SBCL, Allegro and
others.  If you can access a Unix or Linux system, then emacs with ilisp and 
either CMUCL or SBCL make for a fabulous lisp development environment. 

Best wishes,

David
From: Kenny Tilton
Subject: Re: which lisp book ?
Date: 
Message-ID: <r_umb.40208$pT1.21719@twister.nyc.rr.com>
david emile lamy wrote:
> On Mon, 13 Oct 2003, Santanu Chatterjee wrote:
> 
> 
>>Hello everybody,
>>
>>Python people seems to be talking about lisp all the time,
>>so I got somewhat interested and subscribed to this newsgroup.
>>(Here, Python seems to be discussed, too)
>>
>>So, what's so common between python and lisp? To me (I know
>>absolutely nothing about lisp) they sure seem _very_ different.

This bit argues that they are very similar:

    http://www.norvig.com/python-lisp.html

This bit just compares them, finding similarities and differences:

    http://alu.cliki.net/Comparing%20Lisp%20and%20Python

>>
>>Maybe I should learn Lisp a little to find out. So, I found an
>>online book 'OnLisp' by Paul Graham, but it says, I need to know
>>some lisp to understand it. Can anyone suggest any _short_ online
>>Common Lisp book that will teach me enough CLISP to be able to
>>understand 'OnLisp' ? (I already know C & Python)

Not sure if you already know this, but CLisp is just one implementation 
out of many of Common Lisp, which is abbreviated CL.

As for on-line stuff, did you make it to this page, half-way down?:

    http://www.lisp.org/table/learn.htm

kenny

-- 
http://tilton-technology.com
What?! You are a newbie and you haven't answered my:
  http://alu.cliki.net/The%20Road%20to%20Lisp%20Survey
From: david emile lamy
Subject: Re: which lisp book ?
Date: 
Message-ID: <871xt16xjl.fsf@localhost.i-did-not-set--mail-host-address--so-shoot-me>
> On Mon, 13 Oct 2003, Santanu Chatterjee wrote:

>So, what's so common between python and lisp? To me (I know
>absolutely nothing about lisp) they sure seem _very_ different.

Hi,

Due to a long and exhausting thread I ignored your request for a comparison of 
Python and lisp.  Kenny Tilton pointed out an excellent link that has in my 
view a very objective comparison.  However, if you find the functional aspects
of Python (lambda, map, ...) intriguing, then you are going to love lisp.  But
that said, lisp is not just a functional programming language.  I am having a 
blast working through "A New Kind of Science" with lisp.  Lisp gets numbers
and thoughts about numbers right!

What I did forget in my previous post is that "Structures and Interpretation of
Computer Programs" is available online.

David