help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Differences between Elisp and Lisp


From: David Kastrup
Subject: Re: Differences between Elisp and Lisp
Date: 29 Apr 2003 12:35:39 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

Lars Magne Ingebrigtsen <lmi@gnus.org> writes:

> "Daniel R. Anderson" <dan@mathjunkies.com> writes:
> 
> > On emacswiki.org there is a "wish list".  Quite a few people want emacs
> > to be based on another version of LISP.  Out of curiosity, what is it
> > that makes elisp inherently bad, or why would people want it to be
> > changed?
> 
> There's nothing inherently bad about Emacs Lisp, in my opinion.  I
> think it's a cute language that fun to work with.
> 
> However, it has some peculiarities that many people find
> disconcerting.  For instance -- all variables have dynamic scope,
> which is somewhat unusual these days.

It is also unpredictable and inefficient.  For example, you have to
write
((lambda (f g n) (funcall g (funcall f f g) n))
 (lambda (f g) `(lambda (n) (,g (funcall ,f ,f ,g) n)))
 (lambda (f n) (if (zerop n) 1 (* n (funcall f (1- n)))))
 5)
in Emacs-Lisp (meaning that the stuff can't be compiled at compile
time) instead of
((lambda (f g n) (funcall g (funcall f f g) n))
 (lambda (f g) (lambda (n) (funcall g (funcall f f g) n)))
 (lambda (f n) (if (zerop n) 1 (* n (funcall f (1- n)))))
 5)
as is possible in Common Lisp.

It also means that you can't completely compile functions, as the
referenced variables might be something completely different from what
you expect: any function you call may wish to tamper with your own
local variables.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum


reply via email to

[Prev in Thread] Current Thread [Next in Thread]