Excerpt. The complete work is at the source.
In "Recursive Functions of Symbolic Expressions and Their Computation by Machine" McCarthy defined a handful of primitives (car, cdr, cons, atom, eq) and then wrote the interpreter for the language in the language itself. Two mutually recursive functions, eval and apply, take an expression and an environment of bindings and produce its value.
The brackets and arrows are McCarthy's M-expressions, the notation he meant programmers to use before everyone decided to write the S-expression data form directly. Because programs are data here, a Lisp program can read, build, and run other programs, and the language can be defined in terms of itself. Alan Kay called this half page the Maxwell's equations of software.