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

PROG* and related forms



cc: BUG-LISPM at MIT-AI, BUG-LISP at MIT-AI, NIL at MIT-MC

    Date: 10 NOV 1979 0048-EST
    From: KMP at MIT-MC (Kent M. Pitman)

    Could we introduce a LAMBDA* operator which did bindings sequentially? 
    Consider the following form, which returns the value 4.

    ((LAMBDA* (A A A) (1+ A)) 1 (1+ A) (1+ A))

Are you serious?  You must be kidding.  You can't really mean this.
Consider:  what does (LAMBDA* (A A A) (1+ A)) mean under your scheme?
It would have to be the equivalent to: 

	(LAMBDA (&QUOTE X Y Z)
		(SETQ A (EVAL X))
		(SETQ A (EVAL Y))	
		(SETQ A (EVAL Z))
		(1+ A))

Surely this ugly thing cannot be considered usefull.  Clearly what you
have in mind is that LAMBDA* only be used in places like the one you
gave as an example: "((LAMBDA*", in which case What you want is LET*.