[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PROG* and related forms
- To: KMP at MIT-MC
 
- Subject: PROG* and related forms
 
- From: Alan Bawden <ALAN at MIT-AI>
 
- Date: Sat ,10 Nov 79 02:09:00 EDT
 
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 ("E 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*.