Add to my Schedule 101 - Wittermeyer Courtroom Jun 05, 2018 Educational - 50m 11:00 - 11:50

Monads are one of the first abstractions taught to those entering the functional programming world. In this talk, I will define and give examples of its categorical dual: comonads. Comonads allow composition over structured input rather than structured output. With monads, composition in structured output allows functional programmers to work with effectful and non-deterministic computations.  By contrast, comonads are able to model what I call 'superdeterminism': when a value, computed in a context, can be extended over the entire context. Some concrete use cases include: computing a running median, implementing a trie, and verifying a hash in a merkle tree. The primary focus of my talk will be on a particular class of comonads: cofree comonads. Cofree comonads, dual to free monads, are a product type the allow functional programmers to express seemingly infinite streams or trees of data. Using a cofree comonad, you can implement your own blockchain, DSL interpreter, and data stream processor.

Double-Blind Committee Selection

Holland and Hart
No moderator for this session!
Sr. Software Engineer
Protocol engineer
Jumpshot s.r.o
Software Developer
Credit Karma
Software Engineer
Software Engineer
Data Scientist
Jack Henry
Software Engineer, Banno
S&P Global
Software Developer


Discussion not started yet.