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

[no subject]



cc: BUG-LISPM at MIT-MC

    Date: 14 FEB 1980 0820-EST
    From: GLS at MIT-AI (Guy L. Steele, Jr.)

    In system 25.0, with microcode 612, on LISP Machine Two:
    	(SOME '(a b 1 c) #'numberp #'cddr)
    will claim that (FUNCTION CDDR) has an invalid function definition.
    Bazola!?

This is because SOME and EVERY are not actually functions, they are special
forms.  What you wanted to say was: (SOME '(a b 1 c) #'numberp cddr) which
would expand into:

	(DO ((SI:*L* '(a b 1 c) (cddr SI:*L*)))
	    ((NULL SI:*L*) T)
	  (AND (FUNCALL #'numberp (CAR SI:*L*))
	       (RETURN SI:*L*)))

(has its little problems doesn't it!)

Now the 64k question is: is this what we really want?  I seem to remember
that these are Interlisp compatibility crocks, is this the way they work in
Interlisp?  Anybody out there actually know?