septembre
2009
GtkMathView est un widget GTK+ pour l’affichage des formules au standard MathML. Un binding GtkMathView pour LablGtk2 est disponible (encadré « more download » en bas à gauche de la page d’accueil) : en paquets pour Debian (liblablgtkmathview-ocaml et liblablgtkmathview-ocaml-dev) en sources Je n’ai personnellement pas tenté d’installer ce composant, je vous invite à laisser un commentaire si vous avez fait l’expérience.
septembre
2009
S’il y a une chose qui m’étonne c’est qu’avec toutes les abstractions à la disposition du programmeur OCaml il soit encore difficile d’implanter correctement un TAD ensemble. Dans ma bibliothèque de structures de données (OCaml-Idaho) j’ai opté pour une implantation par arbre de recherche équilibré. La cohérence de mes fonctions de comparaison est assurée par un paramétrage par les modules. Grâce aux higher-order modules on peut associer chaque type à une valeur. En associant le […]
septembre
2009
J’ai installé Eastwest, un langage intégré avec un éditeur dirigé par la syntaxe dont j’ai parlé dans mon précédent billet. C’est sympathique mais encore très expérimental. À titre de démonstration voici un petit dérivateur formel pour Eastwest. Je me suis quand même un peu fait avoir sur cet exemple parce que Eastwest accepte les constantes float dans les motifs mais en fait il les traite comme de nouvelles variables. Du coup mon code qui paraît […]
août
2009
Eastwest est un langage jouet intégré avec un éditeur dirigé par la syntaxe. Eastwest s’appuye sur OSET, le O’Caml Structure Editor Toolkit, un framework pour éditeurs structurés basé sur LablGtk2. Eastwest est une démonstration étonnante de ce que non seulement Objective-Caml n’est pas réservé qu’à des programmes console mais qu’il peut même être en avance en matière d’interfaces interactives.
juillet
2009
Le billet d’aujourd’hui a pour but de désamorcer une difficulté courante et propre à entraver l’usage des classes en Objective-Caml. Le style de programmation encouragé par Objective-Caml tend à marginaliser le recours à une POO d’encapsulation où les classes auraient pour objectif essentiel de limiter la propagation des effets hors d’une certaine portée. En présence de valeurs immutables cet usage des classes comme un moyen de componentisation, si essentiel en POO impérative, perd tout ou […]
juillet
2009
Aujourd’hui je m’intéresse à un petit programme dont je n’oserais pas parler dans la rubrique jeux. J’en parle ici parce qu’il a ceci de particulier qu’il est programmé 100% en Objective-Caml. Je savais bien qu’OCaml-SDL existait mais jusqu’ici je n’avais pas pris la peine de l’installer ne sachant pas trop comment le tester. En programmation fonctionnelle ce genre de petite démonstration peut avoir deux sortes de motivations bien distinctes : Souvent il s’agit de montrer […]
juillet
2009
LablGtk2 est le binding GTK+ pour le langage Objective-Caml. Comme son cousin Gtk2Hs (pour Haskell) il permet aussi le chargement d’interfaces codées en XML généré à l’aide de l’outil Glade. J’espère avoir réalisé une copie conforme du Hello Developpez de Alp mais si ça n’est pas le cas ça n’est pas bien grave, l’esprit y est.
décembre
2008
La version 3.11.0 du compilateur Objective-Caml est disponible aujourd’hui en version finale. Au nombre des améliorations les plus attendues on peut mentionner : la liaison dynamique de modules en code natif (Dynlink) les motifs paresseux (lazy patterns) l’ajout du support 64bits pour la plateforme Mac OS X Intel le support de OCamlDebug sur la plateforme Windows Veuillez noter que la page d’accueil de cette nouvelle version est toute fraîche et que seuls les liens vers […]
décembre
2008
Ce billet vient compléter à la fois la partie 5 (la programmation impérative) et la partie 8 (les types algébriques) de mon tutoriel Objective-Caml, il emprunte à ces deux parties pour généraliser le traitement des types arborescents au traitement des types DAG (graphes dirigés acycliques ou Directed Acyclic Graphs). On y réalise cette généralisation à l’aide de la technique des pointeurs ‘intelligents’, complétée par un vilain hack, pas beau mais pas encore trop méchant.