
"One of the major characteristics of Lisp is that Lisp programs are Lisp data" - fogus
http://groups.google.com/group/comp.emacs/msg/c9442db9331835e4?dmode=source
======
pluies
Soo... What I get is: John McCarthy is the inventor of Lisp, the language we
all tell ourselves we'll learn one day. Lisp is used in Emacs macro.

However, I honestly don't get what's going on here. Is that a subtle troll
against Perl? Just a reminder that in Lisp, data and program are
interchangeable?

~~~
abrahamsen
It's a monster discussion, and threading seems to be broken at that part, so
it's hard to say.

But the main part of the discussion concerns a suggestion to replace Emacs
Lisp with Perl. McCarthy's concern seems to be whether Emacs uses the ability
of Lisp to treat code as data, and whether Perl has that facility.

A couple of answers gave examples of Emacs using that ability.

~~~
sigzero
I could be wrong, and I love Perl, but I don't see how it could replace elisp.
I think it would be cool though. I often thought that Vim should dump
vimscript for a preferred language extension of either Perl or Python.

~~~
julian37

      $ find emacs-23.2/ -name \*.c | xargs cat | wc -l
       339497
      $ find emacs-23.2/ -name \*.el | xargs cat | wc -l
      1391690
    

Seeing that about 80% of Emacs code is Lisp, not to mention the countless
extensions that don't ship with Emacs, and much of the C code is geared
towards being called from Lisp, suggesting to replace Emacs Lisp by Perl is
essentially suggesting to rewrite Emacs from scratch.

------
pjscott
The other major characteristic of Lisp is that the mapping between programs
and data is trivial, which tends to lead to a lot of parentheses. I think
these two characteristics are a decent definition of what it means for a
language to be a Lisp.

------
j_baker
"one can compute with Lisp programs present in the machine without parsing"

Correct me if I'm wrong, but don't you still have to parse Lisp code? Granted,
it may be a very simple and primitive type of parsing, but parsing
nonetheless.

~~~
kragen
You don't have to write a parser because it's already built into your Lisp
system in a way you can use.

~~~
j_baker
Well yes, but I was making the assumption that you were writing the Lisp
system. I suppose it makes sense that you don't have to parse it if you're
_using_ the Lisp system. :-)

