|
@@ -61,7 +61,8 @@ NIL
|
|
;; FIND FIRST ATOM IN TREE
|
|
;; FIND FIRST ATOM IN TREE
|
|
;; CORRECT RESULT OF EXPRESSION IS `A`
|
|
;; CORRECT RESULT OF EXPRESSION IS `A`
|
|
;; RECURSIVE CONDITIONAL FUNCTION BINDING
|
|
;; RECURSIVE CONDITIONAL FUNCTION BINDING
|
|
-((LAMBDA (FF X) (FF X))
|
|
|
|
|
|
+((LAMBDA (FF X)
|
|
|
|
+ (FF X))
|
|
(QUOTE (LAMBDA (X)
|
|
(QUOTE (LAMBDA (X)
|
|
(COND ((ATOM X) X)
|
|
(COND ((ATOM X) X)
|
|
((QUOTE T) (FF (CAR X))))))
|
|
((QUOTE T) (FF (CAR X))))))
|
|
@@ -76,28 +77,27 @@ NIL
|
|
;; NOTE: ((EQ (CAR E) ()) (QUOTE *UNDEFINED)) CAN HELP
|
|
;; NOTE: ((EQ (CAR E) ()) (QUOTE *UNDEFINED)) CAN HELP
|
|
;; NOTE: ((EQ (CAR E) (QUOTE LAMBDA)) E) IS NICE
|
|
;; NOTE: ((EQ (CAR E) (QUOTE LAMBDA)) E) IS NICE
|
|
((LAMBDA (ASSOC EVCON PAIRLIS EVLIS APPLY EVAL)
|
|
((LAMBDA (ASSOC EVCON PAIRLIS EVLIS APPLY EVAL)
|
|
- (EVAL (QUOTE ((LAMBDA (FF X) (FF X))
|
|
|
|
- (QUOTE (LAMBDA (X)
|
|
|
|
- (COND ((ATOM X) X)
|
|
|
|
- ((QUOTE T) (FF (CAR X))))))
|
|
|
|
|
|
+ (EVAL (QUOTE ((LAMBDA (FF X)
|
|
|
|
+ (FF X))
|
|
|
|
+ (LAMBDA (X)
|
|
|
|
+ (COND ((ATOM X) X)
|
|
|
|
+ (T (FF (CAR X)))))
|
|
(QUOTE ((A) B C))))
|
|
(QUOTE ((A) B C))))
|
|
- ()))
|
|
|
|
|
|
+ NIL))
|
|
(QUOTE (LAMBDA (X Y)
|
|
(QUOTE (LAMBDA (X Y)
|
|
- (COND ((EQ Y ()) ())
|
|
|
|
- ((EQ X (CAR (CAR Y)))
|
|
|
|
- (CDR (CAR Y)))
|
|
|
|
- ((QUOTE T)
|
|
|
|
- (ASSOC X (CDR Y))))))
|
|
|
|
|
|
+ (COND ((EQ Y NIL) (QUOTE *UNDEFINED))
|
|
|
|
+ ((EQ X (CAR (CAR Y))) (CDR (CAR Y)))
|
|
|
|
+ ((QUOTE T) (ASSOC X (CDR Y))))))
|
|
(QUOTE (LAMBDA (C A)
|
|
(QUOTE (LAMBDA (C A)
|
|
(COND ((EVAL (CAR (CAR C)) A)
|
|
(COND ((EVAL (CAR (CAR C)) A)
|
|
(EVAL (CAR (CDR (CAR C))) A))
|
|
(EVAL (CAR (CDR (CAR C))) A))
|
|
((QUOTE T) (EVCON (CDR C) A)))))
|
|
((QUOTE T) (EVCON (CDR C) A)))))
|
|
(QUOTE (LAMBDA (X Y A)
|
|
(QUOTE (LAMBDA (X Y A)
|
|
- (COND ((EQ X ()) A)
|
|
|
|
|
|
+ (COND ((EQ X NIL) A)
|
|
((QUOTE T) (CONS (CONS (CAR X) (CAR Y))
|
|
((QUOTE T) (CONS (CONS (CAR X) (CAR Y))
|
|
(PAIRLIS (CDR X) (CDR Y) A))))))
|
|
(PAIRLIS (CDR X) (CDR Y) A))))))
|
|
(QUOTE (LAMBDA (M A)
|
|
(QUOTE (LAMBDA (M A)
|
|
- (COND ((EQ M ()) ())
|
|
|
|
|
|
+ (COND ((EQ M NIL) M)
|
|
((QUOTE T) (CONS (EVAL (CAR M) A)
|
|
((QUOTE T) (CONS (EVAL (CAR M) A)
|
|
(EVLIS (CDR M) A))))))
|
|
(EVLIS (CDR M) A))))))
|
|
(QUOTE (LAMBDA (FN X A)
|
|
(QUOTE (LAMBDA (FN X A)
|
|
@@ -114,10 +114,14 @@ NIL
|
|
(PAIRLIS (CAR (CDR FN)) X A))))))
|
|
(PAIRLIS (CAR (CDR FN)) X A))))))
|
|
(QUOTE (LAMBDA (E A)
|
|
(QUOTE (LAMBDA (E A)
|
|
(COND
|
|
(COND
|
|
- ((ATOM E) (ASSOC E A))
|
|
|
|
|
|
+ ((ATOM E)
|
|
|
|
+ (COND ((EQ E NIL) E)
|
|
|
|
+ ((EQ E (QUOTE T)) (QUOTE T))
|
|
|
|
+ ((QUOTE T) (ASSOC E A))))
|
|
((ATOM (CAR E))
|
|
((ATOM (CAR E))
|
|
(COND ((EQ (CAR E) (QUOTE QUOTE)) (CAR (CDR E)))
|
|
(COND ((EQ (CAR E) (QUOTE QUOTE)) (CAR (CDR E)))
|
|
((EQ (CAR E) (QUOTE COND)) (EVCON (CDR E) A))
|
|
((EQ (CAR E) (QUOTE COND)) (EVCON (CDR E) A))
|
|
|
|
+ ((EQ (CAR E) (QUOTE LAMBDA)) E)
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))))
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))))
|
|
|
|
|