From: Greg
Subject: Learning lisp
Date: 
Message-ID: <ghlcjr$i33$1@news.motzarella.org>
I am fairly experience programmer - programming for 8-9 years or so.
Worked mostly with C & C++. Mostly in the windows world, but
occasionally with Linux also.

I am thinking of a learning a different language just to expand my
horizons - after googling a bit, I think Lisp is what I am going to try
my hand at.

Looks like Common Lisp is the popular dialect & would be the best
to learn. I have found some tutorials also.

Next step is to decide on an implementation.

These are my requirements
- It should run on Windows
- Should be free.
- Should be mature enough that I don't end up learning implementation
bugs rather than the language.

Can someone recommend a good implementation for me. 

From: cartercc
Subject: Re: Learning lisp
Date: 
Message-ID: <4459f3cd-7d51-4d3f-ac47-91937d393104@h16g2000yqj.googlegroups.com>
On Dec 9, 4:09 am, "Greg" <····@nopam.com> wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me.

I am about a year ahead of you. After a lot of experimentation, I
found SLIME (Lisp in a Box) the best for my very modest needs. It's
far from perfect, and it has a very steep learning curve, but I
haven't found anything better for a beginner.

As to books, I would rank these three in order: Common Lispcraft by
Wilensky, Practical Common Lisp by Seibel, and ANSI Common Lisp by
Graham. Don't expect to read a book and know Lisp, though. Unless you
are one of the fortunate few, you have to sweat blood to get anywhere.

CC
From: Pascal J. Bourguignon
Subject: Re: Learning lisp
Date: 
Message-ID: <7c8wqp8l62.fsf@pbourguignon.anevia.com>
cartercc <········@gmail.com> writes:

> On Dec 9, 4:09�am, "Greg" <····@nopam.com> wrote:
>> Can someone recommend a good implementation for me.
>
> I am about a year ahead of you. After a lot of experimentation, I
> found SLIME (Lisp in a Box) the best for my very modest needs. It's
> far from perfect, and it has a very steep learning curve, but I
> haven't found anything better for a beginner.

SLIME and Lisp-in-a-Box are not Common Lisp implementations.


                   +---------------------------------+
                   |     lisp box                    |
                   |                                 |
                   |  +--------------------------+   |
                   |  |   emacs                  |   |
editor / IDE       |  |                +---------|   |
                   |  |                | paredit |   |
                   |  |                +---------|   |
                   |  |     +------------+       |   |
                   |  |     |    slime   |       |   |
                   |  +------------+-------------+   |
                   |               |                 |
                   |  +------------+-------------+   |
                   |  |     |    swank   |       |   |
                   |  |     +------------+       |   |
CL implementation  |  |                          |   |
                   |  |              clisp       |   |
                   |  |                          |   |  
                   |  +--------------------------+   |
                   |                                 |
                   +---------------------------------+
-- 
__Pascal Bourguignon__
From: viper-2
Subject: Re: Learning lisp
Date: 
Message-ID: <10f2773f-7aa2-4fa4-8a55-6a44b6bb2e3a@g1g2000pra.googlegroups.com>
On Dec 9, 7:49 am, cartercc <········@gmail.com> wrote:

> I am about a year ahead of you. After a lot of experimentation, I
> found SLIME (Lisp in a Box) the best for my very modest needs. It's
> far from perfect, and it has a very steep learning curve, but I
> haven't found anything better for a beginner.


Any reasonable Lisp implementation, like Clisp or SBCL run as an
inferior Lisp under EMACS, is probably the best option for a beginner.

I hear that SLIME - which is an EMACS major mode - is the way to go
once you're more familiar with EMACS and GNU/Linux. Bill Clementson
has a post on his blog just this week about SLIME and its
installation:

http://bc.tech.coop/blog/081209.html

As for books, I found that part 1 of LISP 3rd edition by Horn and
Winston, in combination with Wilensky's Common LispCraft will get you
up and running with the very basics.  Good luck!!

agt
From: viper-2
Subject: Re: Learning lisp
Date: 
Message-ID: <bf013198-f7a3-4cd4-a5d8-68d8c1a4013d@a26g2000prf.googlegroups.com>
By the way, Debian lists SLIME as being non-Free. There's an
explanation here http://common-lisp.net/pipermail/slime-devel/2005-September/004058.html.

The only problem in upgrading SLIME's status to Free appears to be the
xref.lisp file, which has a non-free licence. I don't know if there
has been progress in this direction.

-- agt

Freedom - No pane, all gaiGN

Code Art Now
http://codeartnow.com
From: ···············@gmail.com
Subject: Re: Learning lisp
Date: 
Message-ID: <1739392e-ffac-4c70-9cd6-fe6be24f4591@s9g2000prg.googlegroups.com>
On 9 Dec, 09:09, "Greg" <····@nopam.com> wrote:

> Can someone recommend a good implementation for me.

On Windows, clisp (http://clisp.cons.org/) is probably still the best
option.

ABLE (http://phil.nullable.eu/) ships with clisp on Windows if you
don't fancy emacs.

--
Phil Armitage
http://phil.nullable.eu/
From: ··················@gmail.com
Subject: Re: Learning lisp
Date: 
Message-ID: <6278ecb5-081b-486f-aac7-258d1d9a5cd1@o4g2000pra.googlegroups.com>
On Dec 9, 4:09 am, "Greg" <····@nopam.com> wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me.

I would actually suggest the Lisp Works personal version if it is just
for learning.
The installation is stupidly easy, and ide is pretty nice.

Granted you can't compile to binary with the personal edition, and
there is a limit of a few hours of use at a time, but all you have to
do is save and re-open it, and you get another few hours (i think it
is five or eight).
From: Kenny
Subject: Re: Learning lisp
Date: 
Message-ID: <493e96a9$0$4896$607ed4bc@cv.net>
Greg wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
> 
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
> 
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
> 
> Next step is to decide on an implementation.
> 
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
> 
> Can someone recommend a good implementation for me. 
> 
> 

AllegroCL trial is the only one to consider until you outgrow it. 
Lispworks trial is a good alternative, but ACL has a better IDE.

hth,kt
From: Pascal J. Bourguignon
Subject: Re: Learning lisp
Date: 
Message-ID: <7chc5d8xrl.fsf@pbourguignon.anevia.com>
"Greg" <····@nopam.com> writes:

> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me. 

I'd suggest clisp 
http://clisp.cons.org/

You may also want to use emacs and slime.

-- 
__Pascal Bourguignon__
From: Alex Mizrahi
Subject: Re: Learning lisp
Date: 
Message-ID: <493e489e$0$90269$14726298@news.sunsite.dk>
 G> Next step is to decide on an implementation.

 G> These are my requirements
 G> - It should run on Windows
 G> - Should be free.
 G> - Should be mature enough that I don't end up learning
 G> bugs rather than the language.

 G> Can someone recommend a good implementation for me.

among open source ones, CLISP is a reasonable choice, as
it's pretty mature and works fine on Windows. it is not
the best CL implementation, though:
 * bytecode-interpreted, might be slow
 * implementation is sort of messy, so still might have bugs
 * there are some weirdnesses, like incomplete MOP support,
   last time i've checked
 * lacks threads
 * some libs might not work with CLISP

as alternative you can try ECL, but it's not without problems
either.

if your definition of free includes limited "personal" versions
of commercial implementations that can be used free of charge,
Lispworks or Allegro CL might be a good choice for learning,
as long as you won't hit into limitation.

but if you're really interested in the learning without
particular practical goals (such as developing applications for
Windows right now), i recommend you to try to run Linux (it is
damn easy with VMWare player and ready virtual machine image for
 it) and use Lisp on it -- this way you get more choices, and,
perhaps, less hassle. on Linux you can run SBCL in its natural
habitat, for example. 
From: Xah Lee
Subject: Re: Learning lisp
Date: 
Message-ID: <8122bafa-0811-483a-8ebc-df090685ccf7@35g2000pry.googlegroups.com>
you might be interested in learning emacs lisp. It is quite practical
and captures basically all important concepts of Common Lisp. You can
put it to actual use in your programing and editing activities. Once
say you have elisp experience for a year, and actually wrote a lot
elisp code for your programing needs, you already know 80% of Common
Lisp and can jump to it.

Here's a example of major projects done in elisp in recent years, each
is about over ten thousand lines:

• javascript implemented in elisp:
http://steve-yegge.blogspot.com/2008/11/ejacs-javascript-interpreter-for-emacs.html

• js2-mode with full js interpreter, by Steve also. (link can be found
in above)

• xhtml mode which includes a full on the fly xml parser and
validator. By the XML guru James Clark.

You can see some of the most useful elisp packages here:

• Useful Emacs Packages
  http://xahlee.org/emacs/useful_emacs_packages.html

also:

• Xah's Emacs Lisp Tutorial
  http://xahlee.org/emacs/elisp.html

For Windows, i recommend:

http://www.ourcomments.org/Emacs/EmacsW32.html

  Xah
∑ http://xahlee.org/

☄

On Dec 9, 1:09 am, "Greg" <····@nopam.com> wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me.
From: blandest
Subject: Re: Learning lisp
Date: 
Message-ID: <18f7cacc-79f1-4c49-933b-46038718cfd0@r15g2000prh.googlegroups.com>
On Dec 9, 11:01 pm, Xah Lee <······@gmail.com> wrote:
> you might be interested in learning emacs lisp. It is quite practical
> and captures basically all important concepts of Common Lisp. You can
> put it to actual use in your programing and editing activities. Once
> say you have elisp experience for a year, and actually wrote a lot
> elisp code for your programing needs, you already know 80% of Common
> Lisp and can jump to it.

That's about 20% true ...
From: Andreas =?UTF-8?B?UsO2aGxlcg==?=
Subject: Re: Learning lisp
Date: 
Message-ID: <ghnuhd$gjs$1@online.de>
Xah Lee wrote:

> you might be interested in learning emacs lisp. It is quite practical
> and captures basically all important concepts of Common Lisp. You can
> put it to actual use in your programing and editing activities. Once
> say you have elisp experience for a year, and actually wrote a lot
> elisp code for your programing needs, you already know 80% of Common
> Lisp and can jump to it.
> 
> Here's a example of major projects done in elisp in recent years, each
> is about over ten thousand lines:
> 
> • javascript implemented in elisp:
> http://steve-yegge.blogspot.com/2008/11/ejacs-javascript-interpreter-for-emacs.html
> 
> • js2-mode with full js interpreter, by Steve also. (link can be found
> in above)
> 
> • xhtml mode which includes a full on the fly xml parser and
> validator. By the XML guru James Clark.
> 
> You can see some of the most useful elisp packages here:
> 
> • Useful Emacs Packages
>   http://xahlee.org/emacs/useful_emacs_packages.html
> 
> also:
> 
> • Xah's Emacs Lisp Tutorial
>   http://xahlee.org/emacs/elisp.html
> 
> For Windows, i recommend:
> 
> http://www.ourcomments.org/Emacs/EmacsW32.html
> 
>   Xah
> ∑ http://xahlee.org/
> 

Hi Xah,

you could add predictive mode to your list.

http://www.emacswiki.org/emacs/PredictiveMode

It's an auto-complete mode for writing in
english. It's very useful for not native english
speakers, as it displays a list of possible
completions, thus taking the care of correctly writing.

Thanks

Andreas Röhler

> ☄
> 
> On Dec 9, 1:09 am, "Greg" <····@nopam.com> wrote:
>> I am fairly experience programmer - programming for 8-9 years or so.
>> Worked mostly with C & C++. Mostly in the windows world, but
>> occasionally with Linux also.
>>
>> I am thinking of a learning a different language just to expand my
>> horizons - after googling a bit, I think Lisp is what I am going to try
>> my hand at.
>>
>> Looks like Common Lisp is the popular dialect & would be the best
>> to learn. I have found some tutorials also.
>>
>> Next step is to decide on an implementation.
>>
>> These are my requirements
>> - It should run on Windows
>> - Should be free.
>> - Should be mature enough that I don't end up learning implementation
>> bugs rather than the language.
>>
>> Can someone recommend a good implementation for me.
From: Alex Mizrahi
Subject: Re: Learning lisp
Date: 
Message-ID: <494008d1$0$90267$14726298@news.sunsite.dk>
 XL> you might be interested in learning emacs lisp. It is quite practical
 XL> and captures basically all important concepts of Common Lisp.

you do not consider lexical closures and CLOS being that important?
From: Xah Lee
Subject: Re: Learning lisp
Date: 
Message-ID: <a25ad85c-3192-40ba-bc5c-2c9d5f841b74@i24g2000prf.googlegroups.com>
On Dec 10, 10:22 am, "Alex Mizrahi" <········@users.sourceforge.net>
wrote:
>  XL> you might be interested in learning emacs lisp. It is quite practical
>  XL> and captures basically all important concepts of Common Lisp.
>
> you do not consider lexical closures and CLOS being that important?

lexical closure and CLOS are not functional programing paradigms. In
lisp, the predominant, convenient, paradigm of programing is
functional. So, generally speaking, state-keeping features are not
important or defining features of lisp.

also, consider the context, that the poster is learning lisp for
educational purposes at this point, as opposed needing to use Common
Lisp for immediate large project. So, i think my recommendation for
emacs lisp for immediate practial usefulness and learning all major
lisp concepts, is fitting.

  Xah
∑ http://xahlee.org/

☄
From: Don Geddis
Subject: Re: Learning lisp
Date: 
Message-ID: <87vdtqwpcl.fsf@geddis.org>
Xah Lee <······@gmail.com> wrote on Wed, 10 Dec 2008:
> In lisp, the predominant, convenient, paradigm of programing is functional.
> So, generally speaking, state-keeping features are not important or
> defining features of lisp.

This is not at all true, for Common Lisp.

But it's been clear for some time that Common Lisp is not a programming
language that you know.  So your ignorant comments can perhaps be forgiven.

        -- Don
_______________________________________________________________________________
Don Geddis                  http://don.geddis.org/               ···@geddis.org
Life's not too short.  It's just that you're dead for so long.
From: Stanisław Halik
Subject: Re: Learning lisp
Date: 
Message-ID: <ghqs99$jcv$2@opal.icpnet.pl>
In comp.lang.lisp Xah Lee <······@gmail.com> wrote:

>>  XL> you might be interested in learning emacs lisp. It is quite practical
>>  XL> and captures basically all important concepts of Common Lisp.
>> you do not consider lexical closures and CLOS being that important?
> lexical closure and CLOS are not functional programing paradigms. In
> lisp, the predominant, convenient, paradigm of programing is
> functional. So, generally speaking, state-keeping features are not
> important or defining features of lisp.

How is elisp functional? The whole thing seems to center around poking
at emacs' internal state.

FUT ignored.

-- 
The great peril of our existence lies in the fact that our diet consists
entirely of souls. -- Inuit saying
From: Didier Verna
Subject: Re: Learning lisp
Date: 
Message-ID: <muxtz9brl1s.fsf@uzeb.lrde.epita.fr>
Stanisław Halik <··············@tehran.lain.pl> wrote:

> In comp.lang.lisp Xah Lee <······@gmail.com> wrote:
>
>>>  XL> you might be interested in learning emacs lisp. It is quite practical
>>>  XL> and captures basically all important concepts of Common Lisp.
>>> you do not consider lexical closures and CLOS being that important?
>> lexical closure and CLOS are not functional programing paradigms. In
>> lisp, the predominant, convenient, paradigm of programing is
>> functional. So, generally speaking, state-keeping features are not
>> important or defining features of lisp.
>
> How is elisp functional? The whole thing seems to center around poking
> at emacs' internal state.

  You should just ignore him. This guy obviously has no clue. Sure the
functional paradigm is important, but a simple grep for setq in the
[X]Emacs codebase should demonstrate that it's not how people write
ELisp code[1], and throw him back where he belongs (the trollcan). Too bad
killfiles can't handle citations...


didier(pts/6)% grep setq /usr/local/src/xemacs-21.5-block-display-property/lisp/*.el | wc -l
5327
didier(pts/6)% grep mapc /usr/local/src/xemacs-21.5-block-display-property/lisp/*.el | wc -l
537



Footnotes: 
[1]  I'm not saying this is a good thing, or a bad one FWIW.

-- 
Resistance is futile. You will be jazzimilated.

Scientific site:   http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com

EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85       Fax. +33 (0)1 53 14 59 22
From: Alex Mizrahi
Subject: Re: Learning lisp
Date: 
Message-ID: <4940fa84$0$90272$14726298@news.sunsite.dk>
 ??>> you do not consider lexical closures and CLOS being that important?

 XL> lexical closure and CLOS are not functional programing paradigms.

lexical closures are absolutely essential for functional programming. 
closure
semantics of anonymous functions is implied in lambda calculus, for example,
in alpha-conversion rule, that allows renaming bound variables. on the other
hand, dynamic variables that are used in Emacs Lisp are connected to
imperative programming rather than functional one, as they represent friggin
dynamic state of a program.

lack of closures absolutely ruins higher-order functions. for example, 
consider

(defun adder (x) (lambda (y) (+ x y)))

(funcall (adder 5) 3)

in Common Lisp higher-order function adder creates anonymous function that
captures variable x, and you have correct result 8. in Emacs Lisp, you have
an error "Symbol's value as variable is void: x", because it is not 
captured.
so, higher-order function does not work properly.

that is how it works in purely functional programming languages too, for 
example,
in Haskell:

adder x = \y -> x + y

Main> (adder 5) 3
 8

variables are lexically bound, not dynamically, and this has nothing to do 
with
mutable state, as such purely functional programming languages do not have
mutable state.


 XL> In lisp, the predominant, convenient, paradigm of programing is
 XL> functional.

this is 50-year old bullshit. indeed, LISP was more functional than Fortran 
and Algol.

but currently Common Lisp is aproximately as functional as lots of other
modern programming languages, such as Python and JavaScript (probably even 
C#
and PHP support lambdas now).

and Elisp is _less functional_ than, say, JavaScript, which are not 
considered
being functional programming languages, so elisp should not be considered
functional either.

 XL>  So, generally speaking, state-keeping features are not important or
 XL> defining features of lisp.

indeed, they are not important defining features of LISP, but they are
important features of _Common Lisp_. so your argument that Elisp is
similar to Common Lisp is totally invalid.

 XL> also, consider the context, that the poster is learning lisp for
 XL> educational purposes at this point, as opposed needing to use Common
 XL> Lisp for immediate large project.
 XL>  So, i think my recommendation for emacs lisp for immediate practial
 XL> usefulness and learning all major lisp concepts, is fitting.

emacs lisp simply sucks for learning lisp. you're a living example of it
 -- you're working with emacs lisp for decades, as i understand, and
you still do not understand what are lexical closures! 
From: Xah Lee
Subject: Re: Learning lisp
Date: 
Message-ID: <62f2620a-da5f-40e3-9bb1-99a617a30e8e@n33g2000pri.googlegroups.com>
On Dec 11, 3:33 am, "Alex Mizrahi" <········@users.sourceforge.net>
wrote:
>  ??>> you do not consider lexical closures and CLOS being that important?
>
>  XL> lexical closure and CLOS are not functional programing paradigms.
>
> lexical closures are absolutely essential for functional programming.
> closure
> ...

what you are doing is tech geek babbling.

From a practical, industry perspective, functional langs are, for
examples:

Mathematica
all lisps (Emacs Lisp, Scheme Lisp, Common Lisp)
PHP

what are not functional langs are:

Perl
Python
C
Java

the langs above are which i have various degrees of expertise, or know
what i'm talking about.

When it comes to tech geeking morons or academic idiots, their notion
of functional lang is a lang that support such things as “first class
citizen” jargon shit, “closure” shit, “anonymous function” or “lambda”
shit. And to a lesser degree: “tail recursion” shit, “lazy eval” shit,
“pattern matching” shit, “currying” shit.

These academic morons never go anywhere in the real world, nor do they
go anywhere in the pure math world. They just babble semi-real-world
and semi-pure-math, “engineers dressed as programing scientists” by-
product shit. It's shit all over!

newsgroups such as comp.lang.lisp or comp.lang.scheme are especially
the hotbed of these type of tech geeking morons. Many of which, with
their FP jargons and features babbling, in fact harm the progress of
functional programing.

The language that has made the most improtant impact to programing
industry about function programing, by far, in this decade, is PHP.

  Xah
∑ http://xahlee.org/

☄


> semantics of anonymous functions is implied in lambda calculus, for example,
> in alpha-conversion rule, that allows renaming bound variables. on the other
> hand, dynamic variables that are used in Emacs Lisp are connected to
> imperative programming rather than functional one, as they represent friggin
> dynamic state of a program.
>
> lack of closures absolutely ruins higher-order functions. for example,
> consider
>
> (defun adder (x) (lambda (y) (+ x y)))
>
> (funcall (adder 5) 3)
>
> in Common Lisp higher-order function adder creates anonymous function that
> captures variable x, and you have correct result 8. in Emacs Lisp, you have
> an error "Symbol's value as variable is void: x", because it is not
> captured.
> so, higher-order function does not work properly.
>
> that is how it works in purely functional programming languages too, for
> example,
> in Haskell:
>
> adder x = \y -> x + y
>
> Main> (adder 5) 3
>  8
>
> variables are lexically bound, not dynamically, and this has nothing to do
> with
> mutable state, as such purely functional programming languages do not have
> mutable state.
>
>  XL> In lisp, the predominant, convenient, paradigm of programing is
>  XL> functional.
>
> this is 50-year old bullshit. indeed, LISP was more functional than Fortran
> and Algol.
>
> but currently Common Lisp is aproximately as functional as lots of other
> modern programming languages, such as Python and JavaScript (probably even
> C#
> and PHP support lambdas now).
>
> and Elisp is _less functional_ than, say, JavaScript, which are not
> considered
> being functional programming languages, so elisp should not be considered
> functional either.
>
>  XL>  So, generally speaking, state-keeping features are not important or
>  XL> defining features of lisp.
>
> indeed, they are not important defining features of LISP, but they are
> important features of _Common Lisp_. so your argument that Elisp is
> similar to Common Lisp is totally invalid.
>
>  XL> also, consider the context, that the poster is learning lisp for
>  XL> educational purposes at this point, as opposed needing to use Common
>  XL> Lisp for immediate large project.
>  XL>  So, i think my recommendation for emacs lisp for immediate practial
>  XL> usefulness and learning all major lisp concepts, is fitting.
>
> emacs lisp simply sucks for learning lisp. you're a living example of it
>  -- you're working with emacs lisp for decades, as i understand, and
> you still do not understand what are lexical closures!
From: Alex Mizrahi
Subject: Re: Learning lisp
Date: 
Message-ID: <49418335$0$90262$14726298@news.sunsite.dk>
 XL> From a practical, industry perspective, functional langs are, for
 XL> examples:

 XL> Mathematica
 XL> all lisps (Emacs Lisp, Scheme Lisp, Common Lisp)
 XL> PHP

can't agree with your terminology. PHP is a vivid example of dysfunctional
programming language.

 XL> When it comes to tech geeking morons or academic idiots, their notion
 XL> of functional lang is a lang that support such things as "first class
 XL> citizen" jargon shit, "closure" shit, "anonymous function" or "lambda"
 XL> shit. And to a lesser degree: "tail recursion" shit, "lazy eval" shit,
 XL> "pattern matching" shit, "currying" shit.

you've forgot "higher-order functions" shit!
i'd love to see your definition of functional programming, hope
you can produce something entertaining.

 XL> The language that has made the most improtant impact to programing
 XL> industry about function programing, by far, in this decade, is PHP.

and how is PHP functional? it has many functions, yep? 
From: Didier Verna
Subject: Re: Learning lisp
Date: 
Message-ID: <muxprjzrku2.fsf@uzeb.lrde.epita.fr>
"Alex Mizrahi" <········@users.sourceforge.net> wrote:

> but currently Common Lisp is aproximately as functional as lots of
> other modern programming languages, such as Python and JavaScript
> (probably even C# and PHP support lambdas now).

  and soon C++ (0x) !! ;-)


-- 
Resistance is futile. You will be jazzimilated.

Scientific site:   http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com

EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bic�tre, France
Tel. +33 (0)1 44 08 01 85       Fax. +33 (0)1 53 14 59 22
From: Helmut Eller
Subject: Re: Learning lisp
Date: 
Message-ID: <m2fxku7vje.fsf@common-lisp.net>
* Alex Mizrahi [2008-12-11 12:33+0100] writes:

> lack of closures absolutely ruins higher-order functions. for example, 
> consider
>
> (defun adder (x) (lambda (y) (+ x y)))
>
> (funcall (adder 5) 3)

Emacs Lisp:

(defun adder (x) `(lambda (y) (+ ',x y)))
(funcall (adder 5) 3)

In Emacs Lisp you can just allocate lambdas as needed.
Emacs Lisp is a practical Lisp dialect.  No doubt about that.

Helmut.
From: Alex Mizrahi
Subject: Re: Learning lisp
Date: 
Message-ID: <49417d8a$0$90270$14726298@news.sunsite.dk>
 HE> Emacs Lisp:

 HE> (defun adder (x) `(lambda (y) (+ ',x y)))
 HE> (funcall (adder 5) 3)

more complex stuff like Y combinator would be really funny with all these 
nested ``,,,'''
essentially you're doing compiler's job.

(not that i care about Y combinator, but Xah says that functional 
programming is uber cool). 
From: Stanisław Halik
Subject: Re: Learning lisp
Date: 
Message-ID: <ghqs53$jcv$1@opal.icpnet.pl>
thus spoke Alex Mizrahi <········@users.sourceforge.net>:

> XL> you might be interested in learning emacs lisp. It is quite practical
> XL> and captures basically all important concepts of Common Lisp.

> you do not consider lexical closures and CLOS being that important?

Note that the `lexical-let' special form exists in elisp.

-- 
The great peril of our existence lies in the fact that our diet consists
entirely of souls. -- Inuit saying
From: Didier Verna
Subject: Re: Learning lisp
Date: 
Message-ID: <muxy6ynrlof.fsf@uzeb.lrde.epita.fr>
Stanisław Halik <··············@tehran.lain.pl> wrote:

> thus spoke Alex Mizrahi <········@users.sourceforge.net>:
>
>> XL> you might be interested in learning emacs lisp. It is quite practical
>> XL> and captures basically all important concepts of Common Lisp.
>
>> you do not consider lexical closures and CLOS being that important?
>
> Note that the `lexical-let' special form exists in elisp.

  Not exactly. lexical-let is part of the CL emulation package, and it
is a macro which basically simulates lexical closures with a bunch of
global variables created on demand (and stored in cl-closure-vars or
something like that). It's usable but obviously, debugging code written
on top of the cl package is a nightmare.

If you go that way, you could also claim that there is CLOS in ELisp
(see EIEIO).

-- 
Resistance is futile. You will be jazzimilated.

Scientific site:   http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com

EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85       Fax. +33 (0)1 53 14 59 22
From: Pascal J. Bourguignon
Subject: Re: Learning lisp
Date: 
Message-ID: <7cljumvqw4.fsf@pbourguignon.anevia.com>
Stanisław Halik <··············@tehran.lain.pl> writes:

> thus spoke Alex Mizrahi <········@users.sourceforge.net>:
>
>> XL> you might be interested in learning emacs lisp. It is quite practical
>> XL> and captures basically all important concepts of Common Lisp.
>
>> you do not consider lexical closures and CLOS being that important?
>
> Note that the `lexical-let' special form exists in elisp.

It is not a lexical form, it is a macro that artificially and with
great expenses, tries to simulate lexical bindings with dynamic
bindings.

(macroexpand '(lexical-let ((a 1) (b 2)) (lambda (x) (+ (* a x) b))))
-->
(let ((--cl-a-- (make-symbol "--a--")) (--cl-b-- (make-symbol "--b--"))) (setf (symbol-value --cl-a--) 1 (symbol-value --cl-b--) 2) (list (quote lambda) (quote (&rest --cl-rest--)) (list (quote apply) (function (lambda (G39398 G39399 x) (+ (* (symbol-value G39399) x) (symbol-value G39398)))) (list #1=(quote quote) --cl-b--) (list #1# --cl-a--) (quote --cl-rest--))))

Not pretty, is it.

-- 
__Pascal Bourguignon__
From: gutzofter
Subject: Re: Learning lisp
Date: 
Message-ID: <a66e9bd9-0ac8-449c-b612-695aa0a28e94@z6g2000pre.googlegroups.com>
On Dec 9, 1:09 am, "Greg" <····@nopam.com> wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me.

Try Cusp plug-in for eclipse
http://bitfauna.com/projects/cusp/
From: Peter Christensen
Subject: Re: Learning lisp
Date: 
Message-ID: <78d85ec4-a15a-4504-9bf6-691c771faa9c@j35g2000yqh.googlegroups.com>
On Dec 9, 3:09 am, "Greg" <····@nopam.com> wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
>
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
>
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
>
> Next step is to decide on an implementation.
>
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
>
> Can someone recommend a good implementation for me.

Setup guides for SBCL/Emacs/WinXP:
http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/

and CLisp: http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/
From: Lars Rune Nøstdal
Subject: Re: Learning lisp
Date: 
Message-ID: <1228919517.3589.47.camel@blackbox.nostdal.org>
On Tue, 2008-12-09 at 14:39 +0530, Greg wrote:
> I am fairly experience programmer - programming for 8-9 years or so.
> Worked mostly with C & C++. Mostly in the windows world, but
> occasionally with Linux also.
> 
> I am thinking of a learning a different language just to expand my
> horizons - after googling a bit, I think Lisp is what I am going to try
> my hand at.
> 
> Looks like Common Lisp is the popular dialect & would be the best
> to learn. I have found some tutorials also.
> 
> Next step is to decide on an implementation.
> 
> These are my requirements
> - It should run on Windows
> - Should be free.
> - Should be mature enough that I don't end up learning implementation
> bugs rather than the language.
> 
> Can someone recommend a good implementation for me. 


If CLISP isn't "good enough"(#1) I'd go for VirtualBox + Ubuntu/Debian +
Emacs+Slime+SBCL as a `Lisp in a Box' type environment on Windows.

Microsoft forgot to close port 80 with regards to the "Lisp has no
portable UI!" problem.

Just dump a SBCL core, compress it (40mb --> 10mb) and rsync (the diff
is smaller than 10mb in turn) to the old 2004 computer now running Linux
in your home basement, or rsync it (via ssh) to some remote box if/when
needed.

I've heard talk about http://www.colinux.org/ and SBCL working well on
Windows too. I've never tried this (no need).


  #1: No threads, no compilation? This might not be something you need.