Hacker News new | ask | show | jobs
by whytaka 2252 days ago
What I would love are examples of how they are useful.
3 comments

For me the first example where I really got why algebraic structures was useful this video on using abstract algebra in analytics[0].

This helped me grasp something that I had read from Alexander Stepanov[1] that I hadn't fully understood before (not being familiar with the algebraic terminology):

> I suddenly realized that the ability to add numbers in parallel depends on the fact that addition is associative...In other words, I realized that a parallel reduction algorithm is associated with a semigroup structure type. That is the fundamental point: algorithms are defined on algebraic structures.

I think the use case of building infrastructure for parallel/distributed computation as described above is a nice, concrete example of why using abstract algebra in our programs can be useful. It certainly isn't the only use case though. Other things include managing complex control flow, or passing an implicit context through a computational pipeline.

[0] https://www.infoq.com/presentations/abstract-algebra-analyti...

[1] http://stlport.org/resources/StepanovUSA.html

Thank you!
This is a really cool presentation where the authors "step up the ladder" to design a really elegant API for animations as semirings (where * is used to sequence animations, and + for animations running in parallel), and then go on to implement it in Swift: https://bkase.github.io/slides/algebra-driven-design/
Thank you!
see the second-to-last slide for a mapping from Algebraic Structures to Computer Science Concepts. http://comonad.com/reader/wp-content/uploads/2009/08/Introdu...
Thank you!
Thank Edward Kmett! That slide is single-handedly responsible for me getting into abstract algebra.