Re: What's wrong with Common Lisp's lambda ?



In article <1159451585.361549.266980@xxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Karol Skocik" <Karol.Skocik@xxxxxxxxx> wrote:

Hi,
I have just read this article:

http://www.ddj.com/184404384;jsessionid=KLMB3AY1Q0DHQQSNDLPCKH0CJUNN2JVN?_requ
estid=71496

and in the section "Impact of Logic", I saw this :

Scheme, a dialect of Lisp which got lambda right (Guy Steele and Gerald
Sussman, 1975; http://www.schemers .org/).

I am a happy CL lambda user, and can't find something wrong in CL's
lambda...

Could some functional guru explain me what they meant?

Common Lisp adopted some features of Scheme's lambda, so it doesn't have
as many problems as earlier dialects of Lisp. But there are still
holes. Although CL has lexical extent for variable bindings, it only
has dynamic extent for control bindings. So you can't do:

(defun make-bad-closure ()
(tagbody
label
(print 'got-here)
(lambda () (go label))))

(funcall (make-bad-closure))

--
Barry Margolin, barmar@xxxxxxxxxxxx
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
.



Relevant Pages