Join Newsletter

Beyond Conditionals: Active Patterns in F#

YOW! Lambda Jam 2013

Pattern matching is widely used in functional languages to support ‘programming by cases.’ Common patterns such as tuples and discriminated unions are usually built into the language, but with F# active patterns you can extend pattern matching with your own classification and destructuring logic, capturing chains of if-else-else logic in a readable, reusable abstraction.

In this talk, we’ll take a tour of the various active pattern techniques available in F#, including cases, conditions and parameterised patterns. We’ll explore how to define each kind of active pattern, how to use it in a match expression and where you might apply it in your code.

Ivan Towlson


Department of Computing at Macquarie University in Sydney


Matt Roberts is a Lecturer in the Department of Computing at Macquarie University in Sydney, Australia. He has extensive industry experience as a developer and software engineer. Matt’s research interests are in functional programming, type systems and software language engineering.