Re: What's wrong with Common Lisp's lambda ?
- From: Ralf Mattes <rm@xxxxxxxxxxxxxx>
- Date: Thu, 28 Sep 2006 17:18:33 +0200
On Thu, 28 Sep 2006 10:48:58 -0400, Barry Margolin wrote:
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))))
Shouldn't this read:
(defun make-bad-closure ()
(tagbody
label
(print 'got-here)
(return-from make-bad-closure (lambda () (go label)))))
Form file:///usr/share/doc/hyperspec/Body/s_tagbod.htm:
... If at any time there are no remaining statements,
tagbody returns nil.
Cheers, Ralf Mattes
(funcall (make-bad-closure))
.
- References:
- What's wrong with Common Lisp's lambda ?
- From: Karol Skocik
- Re: What's wrong with Common Lisp's lambda ?
- From: Barry Margolin
- What's wrong with Common Lisp's lambda ?
- Prev by Date: Re: Aha! moments
- Next by Date: Re: What's wrong with Common Lisp's lambda ?
- Previous by thread: Re: What's wrong with Common Lisp's lambda ?
- Next by thread: Re: What's wrong with Common Lisp's lambda ?
- Index(es):
Relevant Pages
|