perm filename NEVAL2[206,LSP] blob sn#127487 filedate 1974-10-29 generic text, type T, neo UTF8

(DEFPROP NEVL
 (NEVL NEVAL NEVCON PRUP TEST TEST2)
VALUE)

(DEFPROP NEVAL
 (LAMBDA(E A)
  (COND	((ATOM E)
	 (COND ((EQ E T) T) ((EQ E NIL) NIL) ((NUMBERP E) E) (T (NEVAL (CADR (ASSOC E A)) (CDDR (ASSOC E A))))))
	((ATOM (CAR E))
	 (COND ((EQ (CAR E) (QUOTE CAR)) (CAR (NEVAL (CADR E) A)))
	       ((EQ (CAR E) (QUOTE CDR)) (CDR (NEVAL (CADR E) A)))
	       ((EQ (CAR E) (QUOTE CONS)) (CONS (NEVAL (CADR E) A) (NEVAL (CADDR E) A)))
	       ((EQ (CAR E) (QUOTE ATOM)) (ATOM (NEVAL (CADR E) A)))
	       ((EQ (CAR E) (QUOTE EQ)) (EQ (NEVAL (CADR E) A) (NEVAL (CADDR E) A)))
	       ((EQ (CAR E) (QUOTE QUOTE)) (CADR E))
	       ((EQ (CAR E) (QUOTE COND)) (NEVCON (CDR E) A))
	       ((EQ (CAR E) (QUOTE LIST)) (MAPCAR (CDR E) (FUNCTION (LAMBDA (X) (NEVAL X A)))))
	       (T (NEVAL (CONS (CDR (ASSOC (CAR E) A)) (CDR E)) A))))
	((EQ (CAAR E) (QUOTE LAMBDA)) (NEVAL (CADDAR E) (PRUP (CADAR E) (CDR E) A)))
	((EQ (CAAR E) (QUOTE LABEL)) (NEVAL (CONS (CADDAR E) (CDR E)) (CONS (CONS (CADAR E) (CAR E)) A)))))
EXPR)

(DEFPROP NEVCON
 (LAMBDA (U A) (COND ((NEVAL (CAAR U) A) (NEVAL (CADAR U) A)) (T (NEVCON (CDR U) A))))
EXPR)

(DEFPROP PRUP
 (LAMBDA (U V A) (COND ((NULL U) A) (T (CONS (CONS (CAR U) (CONS (CAR V) A)) (PRUP (CDR U) (CDR V) A)))))
EXPR)

(DEFPROP TEST
 (TEST (LAMBDA (A B) ((LAMBDA (B C) (CONS B C)) A B)) 1 2)
VALUE)

(DEFPROP TEST2
 (TEST2 (LAMBDA (A B) ((LAMBDA (BB C) (CONS BB C)) A B)) 1 2)
VALUE)