Hacker News new | ask | show | jobs
by mikhailfranco 2252 days ago
Here is an beautiful old paper about data structures built using a binary join operator, exploring the 16 possible outcomes for properties: unit, idempotent, associative, commutative.

The resulting grid can be factored around set, bag, list and binary tree, with empty/non-empty variants.

Then there is interaction of the structures with binary operators on the data elements themselves, giving a nice analysis of map, filter, fold (reduce) in functional programming.

A.Bunkenburg, The Boom Hierarchy

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.49....

There is a rich literature if you chase the references back and forth, starting from Bird-Meertens Formalism (Squiggol), Hoogendijk, through Backhouse and Malcolm, to Meijer and McBride.