I feel I need to mention "Structure and Interpretation of Classical Mechanics" by Wisdom and Sussman, and the accompanying "scmutils" library, which first implemented in Scheme many of the same features, although this Julia library seems to be more complete.
There's also a great one-to-one port to Clojure by Colin Smith [2] in case you want to use it on a more production-friendly environment. The Strange Loop talk [3] is a good showcase of the power and simplicity of these kind of systems.
[1] https://groups.csail.mit.edu/mac/users/gjs/6946/
[2] https://github.com/sicmutils/sicmutils
[3] https://www.youtube.com/watch?v=7PoajCqNKpg&ab_channel=Cloju...