[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Function cells
- To: Bobrow.PA at PARC-MAXC.ARPA, TIM%MIT-OZ at MIT-MC.ARPA
- Subject: Re: Function cells
- From: Eric Benson <BENSON at SPA-Nimbus>
- Date: Thu ,1 Sep 83 18:35:00 EDT
- Cc: Deutsch.PA at PARC-MAXC.ARPA, lisp-forum at MIT-MC.ARPA,    Julian Padget <PADGET at UTAH-20.ARPA>,    Teitelman.PA at PARC-MAXC.ARPA
- In-reply-to: The message of 1 Sep 83 14:30-PDT from Bobrow.PA at PARC-MAXC.ARPA
    Date: Thu, 1 Sep 83 14:30 PDT
    From: Bobrow.PA@PARC-MAXC.ARPA
    Tim,
	    There is a difference in meaning between:
		     (fun x y) and (FUNCALL fun x y).
    In the former case, one expects the meaning of fun to be independent of
    the context of the call.  In the latter, to be dependent of parameters
    passed in to the environment.  One can take the point of view that one
    doesn't want to distinguish these cases, but I maintain that the code is
    clearer when you do make the distinction for the call.  Similarly, I
    have seen proposals for doing object oriented programming by having the
    function name evaluated in the context of the first argument to the
    function (which would in fact be a closure on some functions and
    variables).  I object to that as well.
    So for me the question is not about efficiency and limitation of name
    space, but of what distinctions you want to make apparent at a call.
    danny bobrow
By this reasoning you must object to the Common Lisp special forms
LABELS and FLET, which define lexically scoped functions.  With the
inclusion of these, function name evaluation is no longer independent of
context.  It is only dependent on the static context, however; there is
no dynamic binding of function names in Common Lisp.  Is it only
dependence on dynamic context you object to, or dependence on any
context?