mirror of
https://github.com/samsonjs/sectorlisp.git
synced 2026-03-25 09:05:48 +00:00
40 lines
1.8 KiB
Common Lisp
40 lines
1.8 KiB
Common Lisp
((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))))))
|
|
(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 (X Y A)
|
|
(COND ((EQ X NIL) A)
|
|
((QUOTE T) (CONS (CONS (CAR X) (CAR Y))
|
|
(PAIRLIS (CDR X) (CDR Y) A))))))
|
|
(QUOTE (LAMBDA (M A)
|
|
(COND ((EQ M NIL) NIL)
|
|
((QUOTE T) (CONS (EVAL (CAR M) A) (EVLIS (CDR M) A))))))
|
|
(QUOTE (LAMBDA (FN X A)
|
|
(COND ((ATOM FN)
|
|
(COND ((EQ FN (QUOTE CAR)) (CAR (CAR X)))
|
|
((EQ FN (QUOTE CDR)) (CDR (CAR X)))
|
|
((EQ FN (QUOTE CONS)) (CONS (CAR X) (CAR (CDR X))))
|
|
((EQ FN (QUOTE ATOM)) (ATOM (CAR X)))
|
|
((EQ FN (QUOTE EQ)) (EQ (CAR X) (CAR (CDR X))))
|
|
((QUOTE T) (APPLY (EVAL FN A) X A))))
|
|
((EQ (CAR FN) (QUOTE LAMBDA))
|
|
(EVAL (CAR (CDR (CDR FN))) (PAIRLIS (CAR (CDR FN)) X A)))
|
|
((QUOTE T) NIL))))
|
|
(QUOTE (LAMBDA (E A)
|
|
(COND ((ATOM E) (ASSOC E A))
|
|
((ATOM (CAR E))
|
|
(COND
|
|
((EQ (CAR E) (QUOTE QUOTE)) (CAR (CDR E)))
|
|
((EQ (CAR E) (QUOTE COND)) (EVCON (CDR E) A))
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))
|
|
((QUOTE T) (APPLY (CAR E) (EVLIS (CDR E) A) A))))))
|