3-proto-lisp

Fork me on GitHub
(set not (lambda (x) (if x $F $T))) (set 1st (lambda (x) (nth 0 x))) (set 2nd (lambda (x) (nth 1 x)))
(set when (lambda-reflect (exp env cont) (normalize (pcons 'if (up [ (down (1st exp)) (down (2nd exp)) $F ])) env cont)))
(when $T 'hello) (when $F 'hello)
(set advise-before (lambda (closure advice) (set-body closure (pcons 'begin (rcons advice (body closure)))))) (set foo (lambda (x) (+ x x))) (foo 5) (advise-before (up foo) '(print "foo called")) (foo 5)

Playground

Happy Happy Joy Joy!