When modeling problem domains, we collect different possible states, legal transitions between states, and relevant data for each state. Finite-state machines emerge. To verify that programs are constructed correctly, and to have a living machine-verified documentation, we should let the compiler in on our trade secrets.
In this talk we will look at motivations and examples of encoding finite-state machines, using the expressive type systems of Haskell and PureScript.
- Show common ways of handling state, using examples from real-world projects.
- Motivate type-checking of state machines as a valuable tool for the working programmer.
- Show techniques of gradually increasing complexity, weighing some of the trade-offs, and showing how far the safety goes.
Being comfortable with Haskell's (or PureScript's) syntax and type system will help in understanding the examples, but it is not required.
After some years of musical education, Oskar Wickström began his journey into the world of software. He's currently doing remote work in Haskell. Among the technical topics that interest Oskar are functional programming, systems design, web technology, and programming languages. His more aesthetic side, which mostly involves music, draws him towards graphics and UI design every now and then.
17.30-17.45 – Meet & Greet
17.45-18.30 – Presentation
18.30-19.00 – Break with something to eat and drink
19.00-20.00 – Q&A