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

The variables +, -, *, and /



    Date: Wed,  4 Dec 85 04:22:30 EST
    From: Tim McNerney <TIM@MIT-MC.ARPA>

    It seems unfortunate that the variables +, -, *, and / were reserved for use
    by the Top-Level Loop.  This choice of names makes it difficult to build the
    run-time environment for Scheme-like language that compiles into Common Lisp
    and that supports the illusion that there are no separate function and value
    cells.  If these variables had not been reserved, one could

	(DEFCONSTANT + #'+)
	(DEFCONSTANT * #'*)
	etc...

    so that

	((IF SUM? + *) X Y) 

    could be simply compiled into

	(FUNCALL (IF SUM? + *) X Y)

    Sigh...

The good Scheme dialects all do modules via closure hacks, rather than via
read-time hacks like packages. As such, there's no reason you can't build a
Scheme package which shadows those symbols and which all Scheme users share.
Talk to Jonathan Rees -- I think he's done just that with a Scheme hack he
wrote to run in CL.