everyone should try to implement a lisp