Apprendre

Qu'est-ce que OCaml ? OCaml est un langage générique de programmation, de puissance industrielle, qui met l'accent sur l'expressivité et la sûreté. C'est la technologie de choix pour les entreprises où la qualité du code, sa performance et sa maintenabilité sont critiques. La communauté est très active, et a développé un riche écosystème de bibliothèques. Lire plus.

Exemples de code

(* Si [l] est la liste [e1;…;eN] *)
(* Additionner tous les éléments: *)
List.fold_left ( +. ) 0. l

(* Multiplier tous les éléments: *)
List.fold_left ( *. ) 1. l

(* Concaténer la liste dans une chaîne: *)
List.fold_left ( && ) true l

(* Inverser la liste : [eN;…;e1] *)
List.fold_left  (fun r e -> e :: r) [] l

Tutoriaux & FAQ

Livres anglais et français

Real World OCaml bookOCaml from the very beginning

De nombreux livres sont disponibles sur OCaml, dont deux publiés en 2013.

Présentations & Videos

Un exposé de Xavier Leroy présentant les dernières nouveautés d'OCaml à la réunion annuelle des développeurs OCaml 2014 à Gothenburg, Suède (en PDF, Vidéo).

Un cours invité donné par Yaron Minsky, de Jane Street, sur comment programmer efficacement en ML. L'exposé a été donné à Harvard, pendant le cours d'introduction à l'informatique, CS51, où les étudiants passent un semestre à programmer en OCaml.

Utilisateurs industriels

Jane Street est une société d'arbitrage financier qui met l'accent sur la résolution de problèmes technologiques et collaboratifs. Presque tous leurs systèmes sont écrits en OCaml : du code de recherche statistique qui opère sur des téra-octects de données aux outils de gestion système, comme l'infrastructure de transactions en temps réel. Et la plupart de ces systèmes sont déployés à l'échelle réelle : dans une journée classique, leurs transactions représentent entre 1% et 2% du volume du marché américain.

Pour gérer son énorme base de code PHP, Facebook a développé pfff, un ensemble d'outils et d'APIs pour effectuer des analyses statiques, des analyses dynamiques, de la visualisation de code, naviguer dans le code, et des transformations source-à-source préservant le style. Facebook a aussi conçu Hack, un nouveau langage de programmation statiquement typé pour HHVM, une machine PHP très rapide. Voir l'exposé à CUFP de Julien Verlaguet et sa présentation.

Les réussites d'OCaml

Screenshot Unison est un synchroniseur de fichiers innovant, basé sur la plus récente recherche. Il tolère les pannes et fonctionne aussi bien sous Windows que sous la plupart des variantes d'Unix, en incluant MacOSX. OCaml a permis à ses auteurs d' « organiser une base de code importante et complexe ».

Développé par LexiFi, le "Modeling Language for Finance" (MLFi) est le premier langage formel qui décrit précisément les produits financiers les plus sophistiqués. MLFi est développé comme un extension du langage OCaml.

FFTW est une bibliothèque pour effectuer la transformée de Fourier, développée au MIT, qui rivalise avec les meilleures bibliothèques propriétaires, tout en restant plateforme indépendante. Le code est généré par genfft, développé en OCaml, qui « découvre » des algorithmes qui étaient inconnus auparavant. Elle a été couronnée par le prix J. H. Wilkinson du logiciel numérique, qui prime les développements qui excèlent dans toutes les phases de la préparation d'un logiciel numérique de haute qualité.