Andrew has a particular interest in both strongly typed functional programming and event sourcing for producing systems that are both correct and easy to reason about. With a long history as a .net developer he has had great success introducing C# developers to functional programming through F#. Recently he’s been spending more time working with Haskell.
YOW! Lambda Jam 2015 Brisbane
Lets see what we can do! with F# Computation Expressions
All F# developers will be familiar with:
- seq expressions that allow imperative looking code to compute lazy sequences of data on demand.
- async blocks that enable asynchronous operations to be composed together.
Rather than build constructs like seq and async into the language F# has built them on top of a more general feature: computation expressions. This decision enables developers to build their own expression languages for composable abstractions using familiar syntax. This talk will explore the power of computation expressions to deal with a range of real-world problem domains. Examples will include:
- Composing computations that fail
- Asynchronous paged data sources
- Building typesafe domain specific languages that be can interpreted at runtime
By writing programs this way we can separate the pure problem domain from the underlying details of the computations.