What sequential games, the tychonoff theorem and the double-negation shift have in common

Martín Escardó, Paulo Oliva
2010 Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming - MSFP '10  
This is a tutorial for mathematically inclined functional programmers, based on previously published, peered reviewed theoretical work. We discuss a higher-type functional, written here in the functional programming language Haskell, which (1) optimally plays sequential games, (2) implements a computational version of the Tychonoff Theorem from topology, and (3) realizes the Double-Negation Shift from logic and proof theory. The functional makes sense for finite and infinite (lazy) lists, and
more » ... the binary case it amounts to an operation that is available in any (strong) monad. In fact, once we define this monad in Haskell, it turns out that this amazingly versatile functional is already available in Haskell, in the standard prelude, called sequence, which iterates this binary operation. Therefore Haskell proves that this functional is even more versatile than anticipated, as the function sequence was introduced for other purposes by the language designers, in particular the iteration of a list of monadic effects (but effects are not what we discuss here).
doi:10.1145/1863597.1863605 dblp:conf/icfp/EscardoO10 fatcat:y4rnbuktjzds3avoyxawcvd5s4