#################################### Un **toplevel** ``OCaml`` embarqué #################################### .. include:: .javascript.fr.rst ------------------------------------------------------------------------------ .. seealso:: Je recommande les outils suivants, plus modernes et plus complets ! - `BetterOCaml.ml `_ est un bon petit éditeur de OCaml (avec le code à gauche, la sortie de son exécution à droite), développé par `un élève de MP* `_ en 2020) ; - `TryOCaml.OCamlPro.com `_ est un autre bon environnement pour utiliser le système de base de OCaml en ligne, sans rien installer ! C'est fait par OCamlPro et la solution "officielle" ; - `Learn-OCaml `_ est un environnement plus lourd et plus complet. Pas sûr qu'il marche en entier hors-ligne. .. seealso:: Utiliser localement un éditeur et interpréteur OCaml ? C'est possible sur ce site ! Sans rien avoir à installer ! `BetterOCaml `_ est une console et un éditeur OCaml simple, mais qui fonctionne en ligne sans besoin d'un serveur qui calcule votre code derrière : tout est interprété en javascript dans votre navigateur ! J'héberge une copie locale ici : `BetterOCaml `_. Il est aussi sur `ocaml.besson.link `_. Le toplevel ----------- .. warning:: Soucis de scrolling et de positionnement du contenu écrit par le toplevel. .. raw:: html

Toplevel OCaml 4.00.1




+----------------------------------+ | .. image:: .ocaml-powered.png | | :scale: 130 % | | :align: right | | :alt: OCaml powered :) | | :target: http://Caml.Inria.fr | +----------------------------------+ ------------------------------------------------------------------------------ .. seealso:: Try Ocaml La page ``_ présente **Try OCaml**, directement copié depuis `try.ocamlpro.com `_, qui présente les avantages suivants : * leçons intéractives en anglais (plus de support du français avec la v4 !); * support du "drag and drop" de fichiers; * permet de télécharger l'historique des entrées; * et le mieux : support du module ``Graphics`` ! Un exemple de programme OCaml ----------------------------- Le toplevel se charge avec les quelques lignes suivantes dans son *buffer* d'entrée : .. code-block:: ocaml let x = 50+10;; let y = x * 3;; String.make x 'a';; sin 1.;; let rec fact n = if n = 0 then 1. else float n *. fact (n - 1);; fact 20;; "abc" < "def";; À propos -------- Comme dans `.special.rst <_sources/.special.txt>`_, j'utilise la directive ``.. raw:: html`` pour **embarquer du code** ``HTML`` dans la page produite par **Sphinx**. :blue:`C'est simple, c'est propre.` Hébergements ------------ Les scripts **Javascript** utilisés sur mes pages sont désormais hébergés sur ce dépot *git* : `lbesson/web-sphinx-scripts `_, sur **bitbucket.org**. Copyrights ---------- * **OCaml** est © et ® Inria; * **toplevel.js** est obtenu par le compilateur **js_of_ocaml**. Pour plus d'infos, voir ``_. Remerciements ------------- * Merci aux auteurs de **js_of_ocaml** (voir ``_); * Merci aux auteurs d'**OCaml** (voir ``_); .. (c) Lilian Besson, 2011-2021, https://bitbucket.org/lbesson/web-sphinx/