mirror of
https://github.com/samsonjs/sectorlisp.git
synced 2026-03-25 09:05:48 +00:00
38 lines
1.8 KiB
Common Lisp
38 lines
1.8 KiB
Common Lisp
((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)))))))
|