On Mon, Jan 25, 2021 at 6:52 AM Jens Axel Søgaard <[email protected]> wrote:
That's a very interesting project. You are so to speak optimizing for > readability. > I immediately get a vision of a SICM-like book, but for algebra instead of > classical mechanics. > > Racket will be a good choice, since macros give you the possibility > of experimenting with suitable, easily understood syntax. > > A tricky choice is to be made: how are the concepts going to be > represented > as Racket values. Normal structs does not allow multiple inheritance. > > Looking at a diagram such as the one below, raises the question whether > the > relationship between the various concepts are to be modelled explicitly or > implicitly. > > [image: image.png] > > Maybe some kind of interface for each concept is needed? > Thanks for pointing those relationships out -- in the earlier Rust and Haskell libraries I used a trait or typeclass for each concept/structure. I decided to make the interfaces simpler but more repetitive by having (for example) separate traits/typeclasses for Additive, Multiplicative and "abstract" groups. That allowed (for example) the real numbers to form groups under both addition and multiplication. I'm hoping I can do something similar with Racket generic interfaces, as the other people in this thread have kindly pointed out to me in their packages and examples. > Link to SICM in case you haven't seen it already. > > > https://mitpress.mit.edu/books/structure-and-interpretation-classical-mechanics > > Note that the authors of SICM wrote a CAS in Scheme that is used in the > book. > One of the benefits of reading through this (with a non-physics background) is the chance to re-examine the use of notation in mathematics and how it can transfer to a computing environment. Thanks, Stu -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CAG%2BkMrEZpC2WCCKfa8pL5Jvw-rLRyCs7-053S84N1rJAyBKUGA%40mail.gmail.com.

