• Re: Why does CL separate variables and functions namespaces?

    From B. Pym@21:1/5 to Javier on Sat Sep 21 14:04:15 2024
    XPost: comp.lang.scheme

    Javier wrote:

    I'm wondering whoose motivations were taken when designing the
    namespace of Lisp, and why functions names and data names are not
    treated the same.

    For example, in Scheme:

    ((car (list +)) 5 6)

    is equivalent to:

    (funcall (car (list #'+)) 5 6)

    in CL.

    Daniel Weinreb, 24 Feb 2003:

    Having separate "value cells" and "function cells" (to use
    the "street language" way of saying it) was one of the most
    unfortunate issues. We did not want to break pre-existing
    programs that had a global variable named "foo" and a global
    function named "foo" that were distinct. We at Symbolics
    were forced to insist on this, in the face of everyone's
    knowing that it was not what we would have done absent
    compatibility constraints. It's hard for me to remember all
    the specific things like this, but if we had had fewer
    compatibility issues, I think it would have come out looking
    more like Scheme in general.

    Daniel Weinreb, 28 Feb 2003:

    Lisp2 means that all kinds of language primitives have to
    exist in two versions, or be parameterizable as to whether
    they are talking about the value cell or function cell. It
    makes the language bigger, and that's bad in and of itself.

    Paul Graham:

    Do you really think people in 1000 years want to be
    constrained by hacks that got put into the foundations of
    Common Lisp because a lot of code at Symbolics depended on
    it in 1988?

    Dick Gabriel:

    Common Lisp is a significantly ugly language. If Guy and I
    had been locked in a room, you can bet it wouldn't have
    turned out like that.

    Dick Gabriel:

    Common LISP just was never designed to be a commercially
    viable LISP. It was intended to serve as a compromise between
    the manufacturers of LISP machines and other vendors of LISP
    products. Never did we think of it as an industrial strength
    system... So, to the extent that ANSI's ongoing efforts to
    standardize on Common LISP exercise some influence over how LISP
    is accepted in the world at large, I anticipate a disaster.

    Paul Graham:

    The good news is, it's not Lisp that sucks, but Common Lisp.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)