============ Pour débuter ============ .. contents:: Introduction ============ OCaml, successeur de Caml Light, est une implémentation du langage Caml créé en 1996. Caml encourage à programmer de manière fonctionnelle ; autrement dit, on évalue des expressions qui renvoient des valeurs, que l'on passer à des fonctions qui renvoient d'autres valeurs. Ces fonctions peuvent elles-même être des valeurs. Contrairement à une instruction, une expression produit un résultat, par exemple ``1+1`` produit ``2``. En OCaml, on n'écrit que des expressions, à l'exception des définitions des variables (on affecte une expression à un nom). OCaml possède un typage fort et statique. On ne déclare d'ailleurs pas le type dans le code, c'est le compilateur qui va le déduire du code. Un point fort d'OCaml est sa rapidité d'exécution. Le compilateur peut en effet générer des exécutables natifs à partir de code Ocaml, ce qui permet d'avoir des performances optimales. Installation ============ Sur GNU/Linux, OCaml est généralement disponible dans les dépôts. Il suffit de l'installer avec votre gestionnaire de paquets. Pour Windows, il faut passer par une distribution pour Windows, par exemple `OCPWin `_. Dans le cas de Windows, il faudra peut-être ajouter à la main le fichier binaire ``ocaml.exe`` au PATH. Invite de commande OCaml ======================== Pour lancer le mode interactif d'OCaml dans un terminal (par exemple bash ou cmd) : :: $ ocaml Une invite de commande apparaît. On écrit les commandes après le croisillon ``#``. Il faut les terminer par deux points-virgules ``;;``. Le système interactif d'OCaml compile les commandes ainsi entrées à la volée, les exécute et affiche le résultat. Les commandes peuvent être des expressions qui seront évaluées ou bien des définitions (on les reonnaît car débutent par ``let``). :: OCaml version 4.06.0 # 5 + 5;; - : int = 10 Compilation =========== Le code OCaml peut aussi être compilé en un fichier binaire que l'on peut directement exécuter. On peut par exemple créer un fichier ``hello.ml`` et y écrire : :: print_string "Hello world!\n" On va compiler ce code en un fichier exécutable, puis l'éxecuter : .. code:: bash $ ocamlbuild hello.native $ ./hello.native Hello world!