/state-machine

A couple of F# scripts showcasing domain-modelling capabilities with F# in different domains as well as other functional programming concepts

Primary LanguageF#

State Machine

A documentation of idiomatic F# code capturing several major F# constructs in different domains. Concepts captured include:

  • Domain modelling with algebraic data types.
  • Making illegal states unrepresentable.
  • Partial application.
  • Actor model of concurrency using the MailboxProcessor.
  • Railway-oriented programming
  • Unit testing with NUnit
  • Combinators
  • Active Patterns

How to Run Scripts

  1. The only prerequisite to run scripts in this repository is to have the .NET SDK installed

  2. Once the .NET SDK is installed, you can then run a script in the F# interactive terminal (fsi) with the following command:

     dotnet fsi <name-of-script>.fsx
  3. Optionally, you can run a block of code by highlighting the code block and pressing ALT + return keys.

  4. You can also run a line of code by placing the cursor on the line of the code and pressing ALT + / keys.