This paper explores how design patterns could be revisited in the era of mainstream functional programming languages. I discuss the kinds of knowledge that ought to be represented as functional design patterns: architectural concepts that are relatively self-contained, but whose entirety cannot be represented as a language-level abstraction. I present four concrete examples embodying this idea: the Witness, the State Machine, the Parallel Lists, and the Registry. Each pattern is implemented in Rust to demonstrate how careful use of a sophisticated type system can better model each domain construct and thereby catch user mistakes at compile-time.
CITATION STYLE
Crichton, W. (2023). Typed Design Patterns for the Functional Era. In FUNARCH 2023 - Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture, Co-located with ICFP 2023 (pp. 40–48). Association for Computing Machinery, Inc. https://doi.org/10.1145/3609025.3609477
Mendeley helps you to discover research relevant for your work.