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

  • Authors:
  • Martín Escardó;Paulo Oliva

  • Affiliations:
  • University of Birmingham, Birmingham, United Kingdom;Queen Mary University of London, London, United Kingdom

  • Venue:
  • Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 in 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).