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

Re: Extent of function definition created by FLET/LABELS: ad...



	
    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>
    Message-ID: <860410111533.3.GLS@THINK-THORLAC.ARPA>
    
	Date: 8 Apr 1986 18:06-EST
	From: NGALL@G.BBN.COM
    
	Is the following legal CL:
    
	(funcall (labels ((foo () (print "hello"))
			  (bar () (foo)))
		   #'bar))
    
	If not, where is it forbidden?
    
		-- Nick
    
	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.
    --Guy

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
places.

	-- Nick