Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A simple, fun, and interactive way to learn the F# language through testing.
Pull request Compare This branch is even with ChrisMarinos:fsharp.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
FSharpKoans.Core Migrate to automatic package restore
FSharpKoans Add hint to parse numbers in decimal comma culture
FSharpKoans2008.sln Added koans for lists
License.txt merged in static loading changes from ryan
README.markdown Instructions to run the Koans via command line under Mono


Functional Koans - F#

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 occured. 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.

Getting Started

The F# Koans currently target Visual Studio 2010. The koans should also work with Visual Studio 2008, Visual Studio 11+, command line Mono, MonoDevelop, and Xamarin Studio.

NOTE: NuGet is required to properly resolve dependencies.

Running the Koans in Visual Studio

  1. Open the Visual Studio project, right click on the "FSharpKoans" project in the solution explorer and select "Set as StartUp Project".

  2. Turn off User-unhandled Exceptions. Go to Debug|Exceptions and uncheck the User-unhandled box from the Common Language Runtime Exceptions item.

You can now run the Koans by selecting Debug|Start Debugging (defaults to f5).

Running the Koans from the command line (Mono)

The following instructions will run the Koans without the need for Visual Studio, MonoDevelop, etc. The only requirements are Mono, FSharp, and NuGet.

  1. In a terminal, navigate to the root of the FSharpKoans solution directory.

  2. Restore all NuGet packages (replace /Path/To/NuGet with the appropriate directory for your environment):

    mono /Path/To/NuGet/nuget.exe restore FSharpKoans.sln
  3. Build the solution:

    xbuild FSharpKoans.sln

You can now run the Koans (the following assumes your output path is bin/Debug):

mono FSharpKoans/bin/Debug/FSharpKoans.exe
Something went wrong with that request. Please try again.