I gave a roughly 60-minute walkthrough of a Pythonic implementation of a subset of the Lisp programming language. An ancient, powerful beast was awakened.
2009, started out doing number theory and beginner crypto problem sets on Windows. • Lisper since 2009. Really got into it in 2011, got started coding simple text-adventure games.
— the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.” - Eric S. Raymond
other than the symbols if, set!, define, lambda, begin, or quote then it is treated as a procedure and is evaluated using the same rules defined above. Example: (square 12) 144 ⇒
an outer Env." def __init__(self, parms=(), args=(), outer=None): self.update(zip(parms,args)) self.outer = outer def find(self, var): "Find the innermost Env where var appears." return self if var in self else self.outer.find(var)