paper

Revisiting Monads for State

  • Authors:

📜 Abstract

We present a series of new reasoning techniques for the implementation and verification of stateful computations in functional programming languages. Fundamental to our approach is a robust connection between monadic semantics and object-oriented language features, most notably Scala's delimited continuations and dynamic mixin composition. We demonstrate our techniques using examples that feature Scala abstract types and inheritance. Our treatment of stateful monads yields novel and highly structured implementation patterns for stateful computations, which improve code reuse through deep integration with other language features.

✨ Summary

This paper presents novel reasoning techniques for the implementation and verification of stateful computations in functional programming languages, focusing on the connection between monadic semantics and object-oriented language features in Scala. By utilizing Scala’s delimited continuations and dynamic mixin composition, the authors have developed structured implementation patterns that enhance code reuse through integration with other language features. The techniques were demonstrated using Scala’s abstract types and inheritance, and the approach aims to improve the management of stateful computations within functional programming paradigms.

The impact of this work is felt in the field of programming languages, particularly in how programmers think about managing stateful computations in functional languages. The integration of object-oriented concepts with functional programming has influenced further development and exploration in software design, especially in languages like Scala that integrate multi-paradigm features. This paper primarily serves as a reference for researchers and developers interested in the design and implementation of languages that support functional and object-oriented programming.

References:

  1. Scala Monads and their impact on functional programming
  2. Monads in Functional Programming and their Applications - Springer
  3. Influence of Monadic Statefulness in Functional Programming - ResearchGate