SICP — Scheme/JS Structure and Interpretation of Computer Programs — Comparison Edition

[1] The original version of this book used the programming language Scheme, a dialect of Lisp.
2.3.2   Example: Symbolic Differentiation