Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Missing Lisp book

528 views
Skip to first unread message

proton

unread,
Nov 23, 2012, 5:37:02 AM11/23/12
to
I have been programming in Lisp for many years, however I still consider myself a beginner. The reason, besides any genetic issues affecting my brain, is the lack of good tutorials or books.

There are tens of books on Lisp, some pretty good. However they all teach the same old basic stuff about the language and stop short of teaching the more exciting things that everyone takes for granted in other languages, such as graphics, sounds, internet access, foreign language support, connectivity, etc...

You'll probably think that everything is out there and that I'm stupid for not finding it, and you might be right. But you will also agree that most of the documentation available is kind of dry and too technical for beginners, plus it's spread out and difficult to gather.

What I am looking for is a tutorial, or a book, which explains with clear examples, all the capabilities of Lisp that I mentioned above. Other things that books never mention are: the SDK's available, the existing libraries, how to communicate with other processes in other languages, how to deploy Lisp programs, etc.. In short, a book for intermediate users, with a reasonable knowledge of the language, who want to go further.

Has anyone felt the same lack of information?

If so, is anyone thinking about writing such book or tutorial? Perhaps as a collaborative effort (like the Lisp Cookbook)?

I suspect that many people see Lisp as outdated because of this lack of information, so this might help change the general view on Lisp.

Comments?

Friedrich Dominicus

unread,
Nov 23, 2012, 6:16:45 AM11/23/12
to
proton <leosa...@gmail.com> writes:

> I have been programming in Lisp for many years, however I still consider myself a beginner. The reason, besides any genetic issues affecting my brain, is the lack of good tutorials or books.
>
> There are tens of books on Lisp, some pretty good. However they all teach the same old basic stuff about the language and stop short of teaching the more exciting things that everyone takes for granted in other languages, such as graphics, sounds, internet access, foreign language support, connectivity, etc...
>
> You'll probably think that everything is out there and that I'm stupid
> for not finding it, and you might be right. But you will also agree
> that most of the documentation available is kind of dry and too
> technical for beginners, plus it's spread out and difficult to gather.
Check out Practical Common Lisp.

Regards
Friedrich
--
Please remove just-for-news- to reply via e-mail.

proton

unread,
Nov 23, 2012, 6:47:04 AM11/23/12
to
On Friday, November 23, 2012 12:17:33 PM UTC+1, Friedrich Dominicus wrote:
I have the book and it's very good, but still missing most of the things I mentioned, such as graphics. I have also checked Land of Lisp, and it goes farther than others in e.g. Internet, but both stop short of all the stuff that most people find exciting.

Norbert_Paul

unread,
Nov 23, 2012, 10:32:15 AM11/23/12
to
Lisp itself does not have graphics. What you need is a library
(just as with almost every programing language):

http://cliki.net/Graphics%20library

Norbert

Pascal J. Bourguignon

unread,
Nov 23, 2012, 2:04:10 PM11/23/12
to
You are confusing programming languages with platforms.

Perhaps there exists a platform where there is a single programming
language.

But even on iOS you can write applications in a lot of other languages
than just Objective-C.

And even when writing an application on the MacOSX platform, and
considering only the Objective-C programming language, you have at least
half a dozen different ways to draw a rectangle in a window!
(NSBezierPath, NSFrameRect, Core Graphics, OpenGL, SVG thru a HTML
rendering object, Quartz 2D, etc).

And similarly for file system access, networking, sound, localization,
and any other domain.


You just cannot expect to find a single source of information to develop
modern applications. While today application developers have the life
simplified by the availability of a lot of frameworks and libraries,
they indeed have their life rendered more complex by this same multitude
of choices.

If you wanted something simple, with a single source of learning, just
use the standard Common Lisp programming language as a platform, and
write teletype-like user interface (using just READ-LINE and
WRITE-LINE/FORMAT).


Already, the CL standard is 1150 pages. How many pages would be a
complete tutorial of the language? How many more pages to explain the
often used libraries (alexandria, cffi, bordeaux-threads, clsql, etc)?
How many more pages to replicate all the Cocoa MacOSX reference showing
how to use it from Common Lisp? And with what API? The Objective-C
bridge that comes with Clozure CL, or the Objective-CL reader macros I
wrote two years ago?


Oh! But perhaps you didn't want to target MacOSX? What about Linux
GUI? Will it use Gtk? Qt? directly X? (Or may I suggest GNUset?)

How many more tens of thousands of pages of tutorial would we need to
lispify to teach you all those frameworks and libraries?


You would never want to read them!


No, the solution is to learn the Common Lisp language, and to learn to
use some popular CL libraries, including notably CFFI and
Bordeaux-threads, (but even for networking, I couldn't tell you to use
one or the other of the existing CL networking libraries: depending on
your application you may choose a different one!). Once you know how to
write CL programs, and how to call foreign libraries with CFFI, you can
use any framework or library available to any programming language, just
reading THEIR documentations and tutorials. Of course, they probably
wrote it for a different programming language than CL, and you will have
to know that other programming language too, and to be able to translate
in your head from it to CL. Or do as I did, write in CL reader macros
to let you essentially copy-and-paste the other language syntax into
your Lisp programs.


https://www.google.com/search?q=CFFI+tutorial
https://groups.google.com/forum/?hl=en&fromgroups=#!topic/comp.lang.lisp/AkU0JCnGGAA

Now, if you can show us two different lisp programmers who use the same
implemention to write programs on the same system for the same target
plateform with the same GUI frameworks and the same set of libraries,
perhaps one could write a tutorial for the other…


--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.

Ralph Schleicher

unread,
Nov 23, 2012, 1:41:14 PM11/23/12
to
proton <leosa...@gmail.com> writes:

> You'll probably think that everything is out there and that I'm stupid
> for not finding it, and you might be right. But you will also agree
> that most of the documentation available is kind of dry and too
> technical for beginners, plus it's spread out and difficult to gather.

No, your impression is IMHO correct. I deployed my first CL application
a month ago and I also had a hard time to put all the things together to
build a simple CLI application, that is

* querying environment variables
* accessing program arguments
* parsing options
* program termination
* nice error handling
* working with temporary files and directories
* running external programs
* building a standalone executable

Most of this information can be found on the net and many packages exist
out there handling one or the other task, but you have to spend quite
some time to find, test, and maybe improve the available solutions or
even rewrite it from scratch.

For those who might be interested, please see the link below for a
snapshot of the resulting code. It also includes a "hello world"
program to show it's use. Fully tested with SBCL on Linux and
Windows.

http://www.ralph-schleicher.de/pub/lisp/rs-cll-20121123.1823.tar.gz

--
Ralph

Ralph Schleicher

unread,
Nov 23, 2012, 1:48:11 PM11/23/12
to
Norbert_Paul <norbertpau...@yahoo.com> writes:

> Lisp itself does not have graphics. What you need is a library
> (just as with almost every programing language):
>
> http://cliki.net/Graphics%20library

And which one works out of the box, cross-platform for Linux, Windows,
and Mac, with a modern look & feel, and deployable together with my GUI
application via a single executable file?

--
Ralph

Pascal J. Bourguignon

unread,
Nov 23, 2012, 2:46:17 PM11/23/12
to
Yes. Good question. Which one does?
When you write programs in C, or any other programming language?

proton

unread,
Nov 23, 2012, 4:54:41 PM11/23/12
to
On Friday, November 23, 2012 8:04:12 PM UTC+1, informatimago wrote:
Someone replied to my private email and he mentioned that you Pascal might be one of the best persons to write this manual/book/tutorial. And I agree. With the thousands of posts you've written here you could write half a dozen of books. If my memory is correct, Kenny made an attempt to writing a book for O'Reilly. He could share his vast knowledge too. And quite a few others too.

> No, the solution is to learn the Common Lisp language, and to learn to
>
> use some popular CL libraries, including notably CFFI and
>
> Bordeaux-threads,

Completely agree. Now, the problem IMHO is that there's plenty of books about CL and none about the libraries. Show me one book where these are even mentioned. And of course, the combinations of Lisp implementation + OS + Graphics library + .... are endless, but if one showed how to use one or two of these, I think it would be quite simple even for people like me to figure out how to proceed from there. Once you know how to use CFFI the rest is simple. But how can you learn about this if it's not by 'hearsay'? Is there a place with nice and easy examples of what can be achieved with these libraries? No, most of the information available has a steep learning curve and requires knowledge of many other libraries and concepts that a beginner does not have.

I think that a lot of people feel like I do, and that such a tutorial would be very welcome.

Ralph Schleicher

unread,
Nov 23, 2012, 6:35:30 PM11/23/12
to
"Pascal J. Bourguignon" <p...@informatimago.com> writes:

> Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:
>
>> Norbert_Paul <norbertpau...@yahoo.com> writes:
>>
>>> Lisp itself does not have graphics. What you need is a library
>>> (just as with almost every programing language):
>>>
>>> http://cliki.net/Graphics%20library
>>
>> And which one works out of the box, cross-platform for Linux, Windows,
>> and Mac, with a modern look & feel, and deployable together with my GUI
>> application via a single executable file?
>
> Yes. Good question. Which one does?
> When you write programs in C, or any other programming language?

With C it's quite easy. You choose the GUI stack of your choice,
for example Gtk+ or wxWindows, then do a static linkage. Look at
the graphical configuration tool for my telephone system:

ralph@bravo: ll estic
-rwxr-xr-x 1 ralph ralph 700328 Feb 9 1999 estic
ralph@bravo: file estic
estic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

Compiled more than 13 years ago on an i486 Linux from scratch box
and still running on my x64 Linux Mint machine.

--
Ralph

Mart van de Wege

unread,
Nov 24, 2012, 5:38:28 AM11/24/12
to
Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:

>Look at
> the graphical configuration tool for my telephone system:
>
> ralph@bravo: ll estic
> -rwxr-xr-x 1 ralph ralph 700328 Feb 9 1999 estic
> ralph@bravo: file estic
> estic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
> statically linked, stripped
>
> Compiled more than 13 years ago on an i486 Linux from scratch box
> and still running on my x64 Linux Mint machine.

So why not do the same in Lisp?

Gtk bindings are available, and if you want static linkage, just use
ecl.

Mart

--
"We will need a longer wall when the revolution comes."
--- AJS, quoting an uncertain source.

Pascal J. Bourguignon

unread,
Nov 24, 2012, 7:54:40 AM11/24/12
to
What you have here basically is a X application. Indeed, most GUI
toolkits on unix are just libraries over X. Some of them, or the GUI
frameworks on MacOSX and MS-Windows need a run-time, or can't be linked
statically, so for them it's more complex.

But if you want just a X application, you can use a pure lisp GUI
library working on X too.


But the OP asked for a "modern look & feel".


Therefore you would have to write your own modern look & feel lisp GUI
library to work over X, and then you could save a stand alone executable
image.

Ralph Schleicher

unread,
Nov 25, 2012, 10:32:04 AM11/25/12
to
Mart van de Wege <mvd...@mail.com> writes:

> Gtk bindings are available, and if you want static linkage, just use
> ecl.

Which Gtk bindings work with ECL?
Please be specific. Thank you.

--
Ralph

Ralph Schleicher

unread,
Nov 25, 2012, 10:36:57 AM11/25/12
to
No, thank you. I really do not wish to reinvent the wheel.

--
Ralph

Pascal J. Bourguignon

unread,
Nov 25, 2012, 1:42:46 PM11/25/12
to
So, because Apple's in the business of writing fashionable user
interface in C or Objective-C, you won't write a user interface in lisp
anymore.

Ok.

But don't complain for the lack of fashionable user interface in lisp.

Ralph Schleicher

unread,
Nov 25, 2012, 6:45:15 PM11/25/12
to
"Pascal J. Bourguignon" <p...@informatimago.com> writes:

> Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:
>
>> "Pascal J. Bourguignon" <p...@informatimago.com> writes:
>>
>>> But the OP asked for a "modern look & feel".
>>>
>>> Therefore you would have to write your own modern look & feel lisp
>>> GUI library to work over X, and then you could save a stand alone
>>> executable image.
>>
>> No, thank you. I really do not wish to reinvent the wheel.
>
> So, because Apple's in the business of writing fashionable user
> interface in C or Objective-C, you won't write a user interface in lisp
> anymore.
>
> Ok.

I haven't mentioned Apple. But I do think you can't write a graphical
user interface in Lisp without implementing basic stuff in C or any
other language. And since Gtk, Qt, and wxWindows are in the business
of writing fashionable user interface toolkits I have to say yes, it's
not worth spending time writing another one.

> But don't complain for the lack of fashionable user interface in lisp.

Mart van de Wege pointed out that there do exist Gtk bindings for Lisp.
Yes it's true, CLiki lists eight different Gtk bindings but up to now I
was not able to get any of these bindings working for me. Maybe I'm too
stupid or my setup is too strange but it also seems that nobody in this
newsgroup can tell what actually works in 2012.

--
Ralph

Zach Beane

unread,
Nov 25, 2012, 7:40:04 PM11/25/12
to
Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:

> Mart van de Wege pointed out that there do exist Gtk bindings for Lisp.
> Yes it's true, CLiki lists eight different Gtk bindings but up to now I
> was not able to get any of these bindings working for me. Maybe I'm too
> stupid or my setup is too strange but it also seems that nobody in this
> newsgroup can tell what actually works in 2012.

In my experience, people who want to write production-quality
cross-platform GUI projects in Common Lisp in 2012 buy LispWorks and
deliver with CAPI.

CommonQt seems promising but also seems like it requires a slightly
adventurous spirit.

Zach

Marco Antoniotti

unread,
Nov 26, 2012, 2:00:11 AM11/26/12
to
On Monday, November 26, 2012 1:40:06 AM UTC+1, Zach Beane wrote:
> Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:
>
>
>
> > Mart van de Wege pointed out that there do exist Gtk bindings for Lisp.
>
> > Yes it's true, CLiki lists eight different Gtk bindings but up to now I
>
> > was not able to get any of these bindings working for me. Maybe I'm too
>
> > stupid or my setup is too strange but it also seems that nobody in this
>
> > newsgroup can tell what actually works in 2012.
>
>
>
> In my experience, people who want to write production-quality
>
> cross-platform GUI projects in Common Lisp in 2012 buy LispWorks and
>
> deliver with CAPI.

I second that.

--
MA

Mart van de Wege

unread,
Nov 26, 2012, 2:57:10 AM11/26/12
to
Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:

> Maybe I'm too stupid or my setup is too strange but it also seems
> that nobody in this newsgroup can tell what actually works in 2012.

Your attitude of 'it doesn't work' without details, and your constant
carping at people trying to help you does not reinforce the idea that
you are asking in good faith.

Pascal J. Bourguignon

unread,
Nov 26, 2012, 2:18:37 PM11/26/12
to
Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:

> "Pascal J. Bourguignon" <p...@informatimago.com> writes:
>
>> Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:
>>
>>> "Pascal J. Bourguignon" <p...@informatimago.com> writes:
>>>
>>>> But the OP asked for a "modern look & feel".
>>>>
>>>> Therefore you would have to write your own modern look & feel lisp
>>>> GUI library to work over X, and then you could save a stand alone
>>>> executable image.
>>>
>>> No, thank you. I really do not wish to reinvent the wheel.
>>
>> So, because Apple's in the business of writing fashionable user
>> interface in C or Objective-C, you won't write a user interface in lisp
>> anymore.
>>
>> Ok.
>
> I haven't mentioned Apple. But I do think you can't write a graphical
> user interface in Lisp without implementing basic stuff in C or any
> other language.

There's no need for that at all.

With X11, we have libraries to talk the X protocol directly with the X
server.

With MS-Windows, there is CFFI to let you call directly MS-Windows
graphics primitives.

And similarly with MacOSX, where you can use the Core* frameworks
exporting a C API to the primitives under the Cocoa Objective-C layer,
if you didn't want to bridge to Objective-C.


> And since Gtk, Qt, and wxWindows are in the business
> of writing fashionable user interface toolkits I have to say yes, it's
> not worth spending time writing another one.

The question is whether a lisper is powerful enough to write the
equivalent of a Gtk or a Qt, with a new look that would become more
fashionable than Cocoa, Windows-8, Gtk or Qt, and therefore would make
all those developer team start to play catch up again after the lisp
code?


Once upon a time, it was Apple who tried to catch up after LispMachine
and Smalltalk look and feel, and Microsoft who lagged far behind…



>> But don't complain for the lack of fashionable user interface in lisp.
>
> Mart van de Wege pointed out that there do exist Gtk bindings for Lisp.
> Yes it's true, CLiki lists eight different Gtk bindings but up to now I
> was not able to get any of these bindings working for me. Maybe I'm too
> stupid or my setup is too strange but it also seems that nobody in this
> newsgroup can tell what actually works in 2012.

But using external libraries with CFFI is always a bad thing in lisp,
since you lose the debuggability and a lot of the introspection and
explorability in the library code.

Daniel Rupis

unread,
Nov 26, 2012, 3:43:39 PM11/26/12
to
An example of GUI is wxmaxima using wxwidgets with lisp, in maxima there is also an interface with gnuplot. Anyway using ABCL one can use java libraries.

ccc31807

unread,
Nov 27, 2012, 3:50:04 PM11/27/12
to
My nit to pick with Lisp books/tutorials is that they all start with car, cdr, cons, etc.

I would be willing to bet even money that a Lisp book that approached Lisp in a way similar to other languages would do as well if not better than what's out there. What I mean is that the book would cover input, output, variables, sequence, repetition, selection, modules, and so on, and then about two-thirds of the way in, covered cons, car, cdr, etc.

CC.

Ralph Schleicher

unread,
Nov 27, 2012, 4:40:00 PM11/27/12
to
"Pascal J. Bourguignon" <p...@informatimago.com> writes:

> Ralph Schleicher <rs+u...@ralph-schleicher.de> writes:

>> I haven't mentioned Apple. But I do think you can't write a graphical
>> user interface in Lisp without implementing basic stuff in C or any
>> other language.
>
> There's no need for that at all.
>
> With X11, we have libraries to talk the X protocol directly with the X
> server.
>
> With MS-Windows, there is CFFI to let you call directly MS-Windows
> graphics primitives.

OK, now I got it. Thank's for your patience.

--
Ralph

RG

unread,
Nov 27, 2012, 8:42:48 PM11/27/12
to
In article <874nkal...@bravo.mueller-schleicher.i>,
And on Macs there is a very nice Objective-C interface built in to
Clozure CL.

rg

Nicolas Neuss

unread,
Nov 28, 2012, 4:07:25 AM11/28/12
to
ccc31807 <cart...@gmail.com> writes:

> My nit to pick with Lisp books/tutorials is that they all start with
> car, cdr, cons, etc.
>
> I would be willing to bet even money that a Lisp book that approached
> Lisp in a way similar to other languages would do as well if not
> better than what's out there. What I mean is that the book would cover
> input, output, variables, sequence, repetition, selection, modules,
> and so on, and then about two-thirds of the way in, covered cons, car,
> cdr, etc.

Could you please make a sketch of you didactic program? When and how do
you introduce functions? That is much more central than car/cdr/cons.
Which book for other languages do you want to follow?

And BTW: _No_ Lisp book I remember starts with car/cdr/cons. Neither
does SICP, nor PCL, nor ANSI CL. Which one does?

Nicolas

Burton Samograd

unread,
Nov 28, 2012, 10:21:34 AM11/28/12
to
Nicolas Neuss <last...@scipolis.de> writes:

> ccc31807 <cart...@gmail.com> writes:
> And BTW: _No_ Lisp book I remember starts with car/cdr/cons. Neither
> does SICP, nor PCL, nor ANSI CL. Which one does?

The Little Lisper, IIRC.

--
Burton Samograd

Pascal J. Bourguignon

unread,
Nov 28, 2012, 1:41:30 PM11/28/12
to
Which is called nowadays The Little Schemer, because it was a lisp-1
anyways.

Fritz Wuehler

unread,
Nov 28, 2012, 2:52:04 PM11/28/12
to
Nicolas Neuss <last...@scipolis.de> wrote:

> ccc31807 <cart...@gmail.com> writes:
>
> > My nit to pick with Lisp books/tutorials is that they all start with
> > car, cdr, cons, etc.
> >
> > I would be willing to bet even money that a Lisp book that approached
> > Lisp in a way similar to other languages would do as well if not
> > better than what's out there.

That is probably a bad bet. You have to present things as they are intended,
not how they line up with your expectations based on what else you know,
mostly, because otherwise you'll write Lisp that looks like C, Python, etc.

> What I mean is that the book would cover input, output, variables,
> sequence, repetition, selection, modules, and so on, and then about
> two-thirds of the way in, covered cons, car, cdr, etc.

Unfortunately most of the well-regarded C books seem to have exactly the
same presentation as K&R (and perhaps, the spec, after the fact) and they
put I/O towards chapter 7 or 8 which is really stupid.

I don't disagree with the order you mention but a lot depends on exactly
which language we're talking about. For a procedural language I think your
suggestions are good. For other languages maybe not. "It depends". For LISP
it's not a bad idea to at least motivate the discussion about why you would
use LISP and what it can do. Now that Lisp is a general purpose language
the problem is it's a multiparadigm language, and who's your audience?
People who know how to code? People who never wrote a program? Books have to
be specific to be useful, usually.

> Could you please make a sketch of you didactic program? When and how do
> you introduce functions? That is much more central than car/cdr/cons.
> Which book for other languages do you want to follow?
>
> And BTW: _No_ Lisp book I remember starts with car/cdr/cons. Neither
> does SICP, nor PCL, nor ANSI CL. Which one does?

Just about every LISP book that called it LISP instead of Lisp, probably. I
saw a half dozen in the 1970s and they all started with that and gave me the
impression LISP was useless for anything other than testing text editors.

Pascal J. Bourguignon

unread,
Nov 28, 2012, 3:25:55 PM11/28/12
to
Fritz Wuehler <fr...@spamexpire-201211.rodent.frell.theremailer.net>
writes:

> Unfortunately most of the well-regarded C books seem to have exactly the
> same presentation as K&R (and perhaps, the spec, after the fact) and they
> put I/O towards chapter 7 or 8 which is really stupid.

Well, the fact is, there is no notion of I/O in C.


In Pascal, there are the types: file, text, and the operators: write,
writeln, read and readln.


But not so in C.

What you happen to have is just a library, "standard" in as much as
you're on a POSIX-like system.


At least, in Common Lisp, like in Pascal, there are some I/O
operators defined by the language, to be discussed in a book about
Common Lisp.

You would have to write a book about POSIX to discuss I/O in the context
of C.

Nils M Holm

unread,
Nov 29, 2012, 2:28:40 AM11/29/12
to
Pascal J. Bourguignon <p...@informatimago.com> wrote:
> Well, the fact is, there is no notion of I/O in C.
>
> In Pascal, there are the types: file, text, and the operators: write,
> writeln, read and readln.
>
> But not so in C.
>
> What you happen to have is just a library, "standard" in as much as
> you're on a POSIX-like system.

I think it's not that bad. The *standard* I/O library is covered in
chapter 7 of K&R. The fact that is it is a set of functions rather
than syntactic keywords is merely an implementation detail. How much
if Lisp's I/O would remain, if you stripped all I/O functions?

And stdio works pretty well on MSDOS, a lot of non-POSIX microcontrollers,
and even mainframe systems like MVS/XA.

--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org

ccc31807

unread,
Nov 29, 2012, 10:54:33 AM11/29/12
to
On Wednesday, November 28, 2012 4:07:25 AM UTC-5, Nicolas Neuss wrote:
> Could you please make a sketch of you didactic program? When and how do
> you introduce functions? That is much more central than car/cdr/cons.
> Which book for other languages do you want to follow?

I didn't think my comment through in a rigorous way, but it was more of an impressionistic comment. As someone else pointed out below, a lot depends on context. My everyday language is Perl, and when I got interested in CL one approach I took in learning the language was to translate my Perl scripts to CL. Needless to say, this was both frustrating and fruitless.

Perhaps the most successful Perl book (and possibly the most successful of any language book) is 'Learning Perl'. You can pick up a used copy very cheaply and if you want more specifics, read that and imagine it 'translated' to CL. Ditto 'Perl Objects, Modules, and References'.

> And BTW: _No_ Lisp book I remember starts with car/cdr/cons. Neither
> does SICP, nor PCL, nor ANSI CL. Which one does?

Again, this was an impressionistic statement more than anything else. Over the years I have purchased around a dozen CL books, including Wilensky, Touretzky, Winston and Horn, Graham, Seible, Barski, Norvig, Tanimoto, Keene, Lamkins, and others I don't remember now. My point was NOT that cons, car, etc. are not essential to CL (because these along with lambda constitute the heart of CL), but that those of us who came to maturity under the influence of numeric processing Turing machines are not equipped to deal with symbolic processing lambda calculus without seeing the benefits of why we should learn something differently.

I learned Perl via CGI, and once I saw the advantages of Perl in the HTTP and database realms, I very naturally went on to learn regular expressions, references, and the rest of the very peculiar and idiosyncratic Perl syntax.

Java currently has this problem with the OO first mentality that's causing an attrition rate of over 50% in beginning programming classes.

Perhaps if we had a CL CGI book that focused squarely on the development of internet and web applications, some might want to delve more deeply in CL.

I took an AI class and implemented some of the algorithms in CL. It was quite an eye opener in that the little scripts almost wrote themselves.

They say that if you put a frog in hot water it will immediately jump out but if you put it in cold water and boil the water he will not jump out. (I've never tried this BTW). My proposal was to do something similar with CL.

CC.

Nicolas Neuss

unread,
Dec 3, 2012, 8:12:05 AM12/3/12
to
ccc31807 <cart...@gmail.com> writes:

> On Wednesday, November 28, 2012 4:07:25 AM UTC-5, Nicolas Neuss wrote:
>> Could you please make a sketch of you didactic program? When and how do
>> you introduce functions? That is much more central than car/cdr/cons.
>> Which book for other languages do you want to follow?
>
> I didn't think my comment through in a rigorous way, but it was more
> of an impressionistic comment. As someone else pointed out below, a
> lot depends on context. My everyday language is Perl, and when I got
> interested in CL one approach I took in learning the language was to
> translate my Perl scripts to CL. Needless to say, this was both
> frustrating and fruitless.

Maybe. Nevertheless, I would be interested in such an example of a
(small) perl script which cannot be translated reasonably well. My
guess would be that if you post such a beast, someone (probably Pascal
B.) will post a CL solution which is not that bad.

> Perhaps the most successful Perl book (and possibly the most
> successful of any language book) is 'Learning Perl'. You can pick up a
> used copy very cheaply and if you want more specifics, read that and
> imagine it 'translated' to CL. Ditto 'Perl Objects, Modules, and
> References'.

I looked at it and my impression is that I would not like it very much.
But maybe my interests in programming are also not those of the average
person.

>> And BTW: _No_ Lisp book I remember starts with car/cdr/cons. Neither
>> does SICP, nor PCL, nor ANSI CL. Which one does?
>
> Again, this was an impressionistic statement more than anything
> else. Over the years I have purchased around a dozen CL books,
> including Wilensky, Touretzky, Winston and Horn, Graham, Seible,
> Barski, Norvig, Tanimoto, Keene, Lamkins, and others I don't remember
> now. My point was NOT that cons, car, etc. are not essential to CL
> (because these along with lambda constitute the heart of CL),

I do _not_ think that cons/car/cdr are essential to CL! At least not
more than make-array and aref are. One Datapoint: I did a search
through my code and car/cdr don't appear much more often than aref.

> but that those of us who came to maturity under the influence of
> numeric processing Turing machines are not equipped to deal with
> symbolic processing lambda calculus without seeing the benefits of why
> we should learn something differently.
>
> I learned Perl via CGI, and once I saw the advantages of Perl in the
> HTTP and database realms, I very naturally went on to learn regular
> expressions, references, and the rest of the very peculiar and
> idiosyncratic Perl syntax.

There was some quote which I tried to find and could not - maybe someone
here can help me. I thought it was by Erik Naggum, but could not find
it in Zach's archive. It was about people being addicted towards some
tool which was bad for them and Perl was given as a specific "example
from hell".

> Java currently has this problem with the OO first mentality that's
> causing an attrition rate of over 50% in beginning programming
> classes.
>
> Perhaps if we had a CL CGI book that focused squarely on the
> development of internet and web applications, some might want to delve
> more deeply in CL.

Maybe. But I doubt it.

> I took an AI class and implemented some of the algorithms in CL. It
> was quite an eye opener in that the little scripts almost wrote
> themselves.

So this may be a domain where CL excels even without a library. The
next thing is to realize that CL is so flexible that you can (usually
quite easily) emulate/incorporate any feature you desire for other
domains.

> They say that if you put a frog in hot water it will immediately jump
> out but if you put it in cold water and boil the water he will not
> jump out. (I've never tried this BTW). My proposal was to do something
> similar with CL.

I don't want to boil people or to seduce them. My sincere goal is to
help them find the right tool for themselves. For me this is CL.

A small example: When I recently gave a Matlab course (with a focus on
stochastic problems), I wanted to generate large random prime numbers
for cryptography. For this, I would have liked to generate large random
integer numbers. Now, although symbolic algebra is supposedly in the
new Matlab (which has incorporated the CAS Mupad), it was not possible
to generate a large random integer, because the randi function was not
capable to handle large integer arguments like say 10^1000. We tried
working around this by composing large random integers from small ones,
but ended in crashing Matlab with a core dump without any apparent
reason. It was towards the end of the course, so I finished with
demonstrating that "(random (expt 10 1000))" is a no-brainer in good
computer languages.

Nicolas

Pascal J. Bourguignon

unread,
Dec 3, 2012, 2:22:49 PM12/3/12
to
Nicolas Neuss <last...@scipolis.de> writes:

> Maybe. Nevertheless, I would be interested in such an example of a
> (small) perl script which cannot be translated reasonably well. My
> guess would be that if you post such a beast, someone (probably Pascal
> B.) will post a CL solution which is not that bad.

The only thing that wouldn't translate very well from perl to lisp is
perligata. You could invent such a "random" programming language and
write a parser that you would hook into lisp with reader macros, so you
could get the same effect, but it wouldn't have the same taste as in
perl.

Frank DG1SBG

unread,
Jan 27, 2013, 4:50:12 AM1/27/13
to
And to illustrate this:

http://capi.plasticki.com

Frank

Marco Antoniotti

unread,
Jan 27, 2013, 7:28:22 AM1/27/13
to
On Sunday, January 27, 2013 10:50:12 AM UTC+1, Frank DG1SBG wrote:
>
> And to illustrate this:
>
> http://capi.plasticki.com
>

Cool

MA

der_gavio_fhurer

unread,
Jan 28, 2013, 12:53:15 AM1/28/13
to
On Friday, November 23, 2012 2:37:02 AM UTC-8, proton wrote:
> I have been programming in Lisp for many years, however I still consider myself a beginner. The reason, besides any genetic issues affecting my brain, is the lack of good tutorials or books.
>
>
>
> There are tens of books on Lisp, some pretty good. However they all teach the same old basic stuff about the language and stop short of teaching the more exciting things that everyone takes for granted in other languages, such as graphics, sounds, internet access, foreign language support, connectivity, etc...
>
>
>
> You'll probably think that everything is out there and that I'm stupid for not finding it, and you might be right. But you will also agree that most of the documentation available is kind of dry and too technical for beginners, plus it's spread out and difficult to gather.
>
>
>
> What I am looking for is a tutorial, or a book, which explains with clear examples, all the capabilities of Lisp that I mentioned above. Other things that books never mention are: the SDK's available, the existing libraries, how to communicate with other processes in other languages, how to deploy Lisp programs, etc.. In short, a book for intermediate users, with a reasonable knowledge of the language, who want to go further.
>
>
>
> Has anyone felt the same lack of information?
>
>
>
> If so, is anyone thinking about writing such book or tutorial? Perhaps as a collaborative effort (like the Lisp Cookbook)?
>
>
>
> I suspect that many people see Lisp as outdated because of this lack of information, so this might help change the general view on Lisp.
>
>
>
> Comments?

I am still a beginner too.
bOoks:
ansi common lisp paul graham
successful lisp David Lamkins
lisp by winston & horn
practical common lisp
gentle introduction to symbolic computation by touretsky
land of lisp conrad barski
on lisp also by paul graham
art of metaobject protocal and let over lambda seem hardcore
http://www.amazon.com/Art-Metaobject-Protocol-Gregor-Kiczales/dp/0262610744/ref=sr_1_1?s=books&ie=UTF8&qid=1359352262&sr=1-1&keywords=art+metaobject+lisp

http://www.amazon.com/Let-Over-Lambda-Doug-Hoyte/dp/1435712757/ref=pd_sim_b_3
0 new messages