Jest to przeniesienie języka Objective Caml na platformę .NET.
Podział języków funkcyjnych Języki funkcyjne można podzielić na dwie grupy:
Języki czysto funkcyjne Do tej grupy należą języki, w których nie występują zmienne ani efekty uboczne.
Wejście/wyjście w takich językach musi się odbywać jakimś alternatywnym mechanizmem, np. za pomocą monad.
Przedstawiciele tej podgrupy to Haskell oraz Clean.
Języki mieszane Języki tej grupy są popularniejsze niż języki czysto funkcyjne. Umożliwiają one stosowanie zmiennych, pozwalają na efekty uboczne, tradycyjne wejście/wyjście i mieszanie stylu funkcyjnego z imperatywnym bądź obiektowym. Wartościowanie w nich jest przeważnie zachłanne.
Do grupy tej należą Lisp z wszystkimi pochodnymi (np. Clojure, Scheme), Erlang, Scala, języki grupy ML (Standard ML, OCaml, więc i bazujący na nim F#), tworzony przez polskich studentów język Nemerle. Ponadto elementy programowania funkcyjnego występują również w językach takich jak Java (od wersji 8), Python, Ruby, a nawet do pewnego stopnia Perl, JavaScript, D.