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

Re: Function cells



    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?