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

Re: Packages

    Date:  1 Dec 1986 16:40-EST 
    From: Sean.Engelson@cad.cs.cmu.edu

	    Date: Mon, 1 Dec 86 16:25 EST
	    From: Soley@MIT-XX.ARPA

	    Are you saying that (eql #'FOO:QUUX #'BAR:QUUX) => NIL, but (eql
	    'FOO:QUUX 'BAR:QUUX) => T ??  

    I guess my idea wasn't well-worded.  Let me try to clarify.  I would
    remove any association of symbols to packages, thus there would be no
    FU:QUUX, there would just be QUUX.  However, QUUX's value and function
    would be attached to packages, thus we could speak of QUUX's function
    in package FU, or QUUX's value in package BAR.  Thus we have separate
    name spaces for functions and values, without the ridiculosity of
    having to do interning, or string coercion whenever comparison of
    symbols is needed.

I don't see what this solves.  You still need to /talk about/ functions
attached to symbols in other packages, in order to apply them.  I was
just using "FOO:QUUX" as that syntax; are you suggesting something like

	((function QUUX FOO) 1 2 3)

for the current (FOO:QUUX 1 2 3) ??  And if you want the A package value
of the symbol B, instead of A:B you have to type (value-of B 'A) or
something?  That's just syntax.  And there're separate
function/value/property slots for each symbol for each known package?

I think this makes the world more complex, not simpler.  I think in most
cases you don't want the name of one of your symbols to be eq to another
symbol that just happens to have the same name, but is in another

	-- Richard Soley