> I think differential geometry is a field where it really helps to think about the "types" of each object, and to write the type signatures down explicitly for every function of interest.
Do you have an opinion on https://mitpress.mit.edu/books/functional-differential-geome...?
I haven't gone through any of it, but I have gone through some of their companion book on classical mechanics. https://mitpress.mit.edu/sites/default/files/titles/content/...
I really like the idea of providing code+math together! I applaud their attempt at using code to clarify differential geometry notation, which is very overloaded.
However, I am extremely skeptical that using Scheme (or any Lispy language) is the best choice here. I'm guessing the choice of Scheme has little to do with pedagogical value and more to do with the fact that Scheme was created by Sussman, one of the authors.
I think Scheme is a poor choice here, mostly due to its lack of static types / type annotations. I'm also not a fan of S-expressions, but that's a different can of worms. To me, the lack of type information makes Scheme even more difficult to read than appropriately-parenthesized math notation. I think Haskell, Idris, or Julia might be more effective for clear communication of mathematical ideas.
I think this quote sums up my view nicely:
> "Dynamic typing" The belief that you can't explain to a computer why your code works, but you can keep track of it all in your head. (https://chris-martin.org/2015/dynamic-typing)
The book is probably very effective at teaching differential geometry to a target audience that already knows Scheme inside and out. But to everyone else? I'm not so sure.
I think differential geometry is a field where it really helps to think about the "types" of each object, and to write the type signatures down explicitly for every function of interest. Unfortunately even Lee's book doesn't always do this, but I think it'll help you when taking notes.
If you just want to learn about the "spirit" of DG and not the rigorous details, I highly highly recommend Keenan Crane's "Discrete Differential Geometry" book [1] and course [2,3]. It's very computationally-oriented and you'd be in a good position to read more about the continuous case afterwards.
[0] due to differences in order of topics and typographical style [1] http://www.cs.cmu.edu/~kmcrane/Projects/DGPDEC [2] http://brickisland.net/DDGSpring2020/ [3] https://www.youtube.com/watch?v=FRvhgkGKfSM&list=PL9_jI1bdZm...