[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extent of function definition created by FLET/LABELS: ad...
- To: gls@AQUINAS.THINK.COM
- Subject: Re: Extent of function definition created by FLET/LABELS: ad...
- From: NGALL@G.BBN.COM
- Date: Thu, 10 Apr 1986 15:55:00 -0000
- Cc: common-lisp@SU-AI.ARPA
- In-reply-to: <860410111533.3.GLS@THINK-THORLAC.ARPA>
- Sender: NGALL@G.BBN.COM
Date: Thu, 10 Apr 86 11:15 EST
From: Guy Steele <gls@THINK-AQUINAS.ARPA>
To: NGALL@G.BBN.COM, common-lisp@SU-AI.ARPA
Subject: Extent of function definition created by FLET/LABELS: additional remark
In-Reply-To: <[G.BBN.COM] 8-Apr-86 18:06:32.NGALL>
Date: 8 Apr 1986 18:06-EST
Is the following legal CL:
(funcall (labels ((foo () (print "hello"))
(bar () (foo)))
If not, where is it forbidden?
P.S. It works in VaxLisp.
Page 39 ought to state that bindings of function names,
as well as variable bindings, have lexical scope and
indefinite extent. Page 113 also ought to make explicit
mention of this.
My question really has nothing to do with the BINDING of a function
name, otherwise I would have asked if the following were legal:
(funcall (flet ((foo () (print "hello")))
#'(lambda () (foo))))
My question was really whether or not the actual function object
created by FLET/LABELS has indefinite extent, and I take it that it
is. The fact that it is should be mentioned in the appropriate