Talk: 14:30-15:15 (English)

Leveraging Algebraic Data Types

In functional programming languages, Algebraic Data Types and Pattern Matching are ubiquitous, and they are a very powerful and expressive tool. Unfortunately, many mainstream languages, especially in the object-oriented spectrum, lack these features and resort to rather cumbersome subtyping and inheritance.

But not all is lost! Leveraging an old GoF pattern together with Lambda syntax that by now has spread to most modern programming languages, we can emulate ADTs and pattern matching in virtually any programming language.

Applications range from implementation of standard ADTs like Maybe, Tuples and Either over standard functional data structures like Linked Lists and Fingertrees, up to complex structures like ASTs or DSLs.

Franz Thoma

Franz Thoma is originally a physicist and works as a consultant and software engineer at TNG Technology Consulting in Munich. While spending time there on domain specific languages and building compilers, he discovered his love for functional languages and expressive type systems. With Haskell, Franz found a robust and elegant language to express himself, which he uses for his own personal tooling as well as a thinking tool. At TNG, he currently works on high-throughput ingestion of real-time data for a client’s Big Data platform.

Slides
thoma.pdf
Video
https://media.ccc.de/v/bob2020-104-leveraging_algebraic_data_types_in_any_programming_language