2
0

eval10.lisp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ((LAMBDA (ASSOC EVCON BIND EVAL)
  2. (EVAL (QUOTE ((LAMBDA (FF X) (FF X))
  3. (QUOTE (LAMBDA (X)
  4. (COND ((ATOM X) X)
  5. ((QUOTE T) (FF (CAR X))))))
  6. (QUOTE ((A) B C))))
  7. NIL))
  8. (QUOTE (LAMBDA (X E)
  9. (COND ((EQ E NIL) NIL)
  10. ((EQ X (CAR (CAR E))) (CDR (CAR E)))
  11. ((QUOTE T) (ASSOC X (CDR E))))))
  12. (QUOTE (LAMBDA (C E)
  13. (COND ((EVAL (CAR (CAR C)) E) (EVAL (CAR (CDR (CAR C))) E))
  14. ((QUOTE T) (EVCON (CDR C) E)))))
  15. (QUOTE (LAMBDA (V A E)
  16. (COND ((EQ V NIL) E)
  17. ((QUOTE T) (CONS (CONS (CAR V) (EVAL (CAR A) E))
  18. (BIND (CDR V) (CDR A) E))))))
  19. (QUOTE (LAMBDA (E A)
  20. (COND
  21. ((ATOM E) (ASSOC E A))
  22. ((ATOM (CAR E))
  23. (COND
  24. ((EQ (CAR E) NIL) (QUOTE *UNDEFINED))
  25. ((EQ (CAR E) (QUOTE QUOTE)) (CAR (CDR E)))
  26. ((EQ (CAR E) (QUOTE ATOM)) (ATOM (EVAL (CAR (CDR E)) A)))
  27. ((EQ (CAR E) (QUOTE EQ)) (EQ (EVAL (CAR (CDR E)) A)
  28. (EVAL (CAR (CDR (CDR E))) A)))
  29. ((EQ (CAR E) (QUOTE CAR)) (CAR (EVAL (CAR (CDR E)) A)))
  30. ((EQ (CAR E) (QUOTE CDR)) (CDR (EVAL (CAR (CDR E)) A)))
  31. ((EQ (CAR E) (QUOTE CONS)) (CONS (EVAL (CAR (CDR E)) A)
  32. (EVAL (CAR (CDR (CDR E))) A)))
  33. ((EQ (CAR E) (QUOTE COND)) (EVCON (CDR E) A))
  34. ((EQ (CAR E) (QUOTE LAMBDA)) E)
  35. ((QUOTE T) (EVAL (CONS (ASSOC (CAR E) A) (CDR E)) A))))
  36. ((EQ (CAR (CAR E)) (QUOTE LAMBDA))
  37. (EVAL (CAR (CDR (CDR (CAR E))))
  38. (BIND (CAR (CDR (CAR E))) (CDR E) A)))))))