Inspired by EdgeCase's fantastic Ruby koans, the goal of the F# koans is to teach you F# through testing.
When you first run the koans, you'll be presented with a runtime error and a stack trace indicating where the error occurred. Your goal is to make the error go away. As you fix each error, you should learn something about the F# language and functional programming in general.
Your journey towards F# enlightenment starts in the AboutAsserts.fs file. These koans will be very simple, so don't overthink them! As you progress through more koans, more and more F# syntax will be introduced which will allow you to solve more complicated problems and use more advanced techniques.
GitHub Codespaces is a free platform to run F# Koans completely in your browser, no install or setup required! Just go to https://github.com/ChrisMarinos/FSharpKoans/codespaces and click "New CodeSpace"
To launch in watch mode using docker run the following command;
$ ./docker.sh
The F# Koans needs .NET 6.0 to be built and run. Make sure that you have installed it before building the project. This is the long-term support release of .NET that many modern F# and .NET applications use.
Additionally, the project provides Visual Studio Code configuration for running. To be able to run F# projects in Visual Studio Code, the Ionide plugin should be also installed.
-
To build the Koans, run
dotnet build
command in the project root. -
To run the Koans, run
dotnet run --project FSharpKoans/FSharpKoans.fsproj
in the root directory ordotnet run
inFSharpKoans
project directory.
- Open the project directory in Visual Studio Code with Ionide-fsharp plugin installed and press F5 to build and launch the Koans (some time is needed to build the project before launch).
-
Install the Remote - Containers extension in Visual Studio Code.
-
Open the directory inside a Devcontainer.
-
Open a terminal and start using the Koans.
You can also use dotnet-watch to have your changes reloaded automatically.
To do so, navigate into FSharpKoans
directory and run dotnet watch run
. Now, after you change the project code, it will be automatically reloaded and tests rerun.