I wrote these old blog entries a while back. Now rethinking them. https://www.myberlinaustin-atl.com/2008/07/simple-lisp-implementation-in-java-ode.html https://www.myberlinaustin-atl.com/2008/07/neophyte-schemelisp-interpreter-in.html Lisp can look strange if you come from Java, C, C++, or another procedural language. There are parentheses everywhere, functions seem to be mixed with data, and even a simple expression like (+ 1 2 3 4) does not look like the code most programmers are used to reading. Instead of starting with Lisp theory, I think it is easier to start with something every computer science student has probably implemented at some point: a linked list. A linked list has a node containing some data and a reference to the next node. You can walk through the nodes, print them, add their values, or perform some other operation on each element. Keep that basic data structure in mind because it gets us surprisingly close to understanding Lisp. Consider the Lisp expre...