F# is a great language for developing business logic of an application and accessing data, but it can be also used for elegantly expressing user interactions. In this talk, we’ll look at both sides of the coin. We’ll develop an (almost complete) application for a retail checkout counter.
In the first part of the talk, we’ll start by looking at domain modeling – using F# types like records and discriminated unions, you can write a domain model that fits on a single page. This makes it easier to understand the application just by looking at the source code. Once we have the domain model, we can implement functions of the business logic and add user interface. In the second part of the talk, we’ll look how to use F# asynchronous workflows to elegantly express interaction logic such as scanning products repeatedly and then completing the trade.
About the speaker
Long time F# enthusiast, author of Real-World Functional Programming and computer science PhD student.