|
@@ -0,0 +1,38 @@
|
|
|
+((LAMBDA (ASSOC EVCON BIND EVAL)
|
|
|
+ (EVAL (QUOTE ((LAMBDA (FF X) (FF X))
|
|
|
+ (QUOTE (LAMBDA (X)
|
|
|
+ (COND ((ATOM X) X)
|
|
|
+ ((QUOTE T) (FF (CAR X))))))
|
|
|
+ (QUOTE ((A) B C))))
|
|
|
+ NIL))
|
|
|
+ (QUOTE (LAMBDA (X E)
|
|
|
+ (COND ((EQ E NIL) NIL)
|
|
|
+ ((EQ X (CAR (CAR E))) (CDR (CAR E)))
|
|
|
+ ((QUOTE T) (ASSOC X (CDR E))))))
|
|
|
+ (QUOTE (LAMBDA (C E)
|
|
|
+ (COND ((EVAL (CAR (CAR C)) E) (EVAL (CAR (CDR (CAR C))) E))
|
|
|
+ ((QUOTE T) (EVCON (CDR C) E)))))
|
|
|
+ (QUOTE (LAMBDA (V A E)
|
|
|
+ (COND ((EQ V NIL) E)
|
|
|
+ ((QUOTE T) (CONS (CONS (CAR V) (EVAL (CAR A) E))
|
|
|
+ (BIND (CDR V) (CDR A) E))))))
|
|
|
+ (QUOTE (LAMBDA (E A)
|
|
|
+ (COND
|
|
|
+ ((ATOM E) (ASSOC E A))
|
|
|
+ ((ATOM (CAR E))
|
|
|
+ (COND
|
|
|
+ ((EQ (CAR E) NIL) (QUOTE *UNDEFINED))
|
|
|
+ ((EQ (CAR E) (QUOTE QUOTE)) (CAR (CDR E)))
|
|
|
+ ((EQ (CAR E) (QUOTE ATOM)) (ATOM (EVAL (CAR (CDR E)) A)))
|
|
|
+ ((EQ (CAR E) (QUOTE EQ)) (EQ (EVAL (CAR (CDR E)) A)
|
|
|
+ (EVAL (CAR (CDR (CDR E))) A)))
|
|
|
+ ((EQ (CAR E) (QUOTE CAR)) (CAR (EVAL (CAR (CDR E)) A)))
|
|
|
+ ((EQ (CAR E) (QUOTE CDR)) (CDR (EVAL (CAR (CDR E)) A)))
|
|
|
+ ((EQ (CAR E) (QUOTE CONS)) (CONS (EVAL (CAR (CDR E)) A)
|
|
|
+ (EVAL (CAR (CDR (CDR E))) A)))
|
|
|
+ ((EQ (CAR E) (QUOTE COND)) (EVCON (CDR E) A))
|
|
|
+ ((EQ (CAR E) (QUOTE LAMBDA)) E)
|
|
|
+ ((QUOTE T) (EVAL (CONS (ASSOC (CAR E) A) (CDR E)) A))))
|
|
|
+ ((EQ (CAR (CAR E)) (QUOTE LAMBDA))
|
|
|
+ (EVAL (CAR (CDR (CDR (CAR E))))
|
|
|
+ (BIND (CAR (CDR (CAR E))) (CDR E) A)))))))
|