On Thursday, 21 January 2021 at 14:49:19 UTC+11 Siddhartha Kasivajhula wrote:
Depending on what you're trying to accomplish, you may find the > relation/composition > <https://docs.racket-lang.org/relation/Composing_Operations.html> module > (which I authored) to be of interest. It doesn't model algebraic structures > explicitly but uses them to generalize common composition operators like + > (as a group), and .. (as a monoid). It also provides derived functions like > power > <https://docs.racket-lang.org/relation/Composing_Operations.html#%28def._%28%28lib._relation%2Fcomposition..rkt%29._power%29%29> > . > > If this is the kind of thing you're trying to do, also take a look at generic > interfaces <https://docs.racket-lang.org/reference/struct-generics.html> > (used > in the above library) which resemble typeclasses, and which could be used > to define monoids, groups, and so on as interfaces, which particular Racket > types could implement. > > There's also the Algebraic Racket > <https://docs.racket-lang.org/algebraic/class_base.html> library which I > believe uses classes and objects rather than generic interfaces, and has a > lot of other algebraic goodies as far as I can tell. > Thanks so much for pointing these out, there's a lot of inspiration there to draw from. 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/f64b0183-2669-4580-bd75-6cb998260790n%40googlegroups.com.

