Production Languages and Toy Languages (2008)
teamten.com
teamten.com
I don’t know that this is possible. Changes in patterns and language features (even legacy languages are gaining new features) will mean that someone will come to your code and need to refactor it for the new system/model/design, etc. It’s not very easy to predict the future and what current style you use that may or may not be desirable in the future.
Optimize for components that can be rewritten, replaced, and repurposed. Put a lot of tests around your code so that during a refactor it’s possible to understand if the refactor is safe. Anticipate that your code will need to be replaced.
Here the reader/student has to understand a new programming language (Scheme) and has to understand the example domains, which require some maths knowledge.
The author here probably has more problems understanding how to write mathematical formulas/algorithms in a Functional style. Generally this is nothing Lisp specific, the same programming style could be implemented in typical Functional Programming languages like SML or OCAML. Lisp has a slightly different syntax and no static types - which can be an additional hurdle. But other than that, it's standard mathematical code in a Functional Programming language. Also the book explains it well. So the code should be understandable years later, since it uses the usual mathematical algorithms.