février
2010
Définition C’est comme pour un langage à objets, étant un paradigme riche il y a plusieurs définitions possibles pour un langage fonctionnel. Une définition possible: c’est un langage qui offre les fermetures (une fonction liée à un environnement d’évaluation). Avantage de cette définition: elle est tolérante. Inconvénient de cette définition: elle perd de sa pertinence au fur et à mesure que la plupart des langages à objets intègrent plus ou moins cette fonctionnalité. Une autre […]
janvier
2010
Un MIME (Multipurpose Internet Mail Extension) est une information système pour identifier les types de fichier et leur affecter certains attributs comme une commande par défaut ou une icône personnalisée. Ce billet vous propose d’agrémenter votre station de développement Objective-Caml à l’aide d’un MIME pour vos fichiers source. Bien sûr ça n’est qu’un exemple que vous pourrez adapter à votre application ou à votre langage de programmation favori.
janvier
2010
Le billet d’aujourd’hui a pour but de faire toute la lumière sur la qualification à l’intérieur des modules Objective-Caml.
novembre
2009
Hier, afin d’illustrer l’usage de LablGtk2, le binding GTK+ pour le langage Objective-Caml j’ai posté le code de ce Hello Developpez tout ce qu’il y a de plus basique : Toutefois, une comparaison ligne à ligne avec la version Gtk2Hs pour Haskell, grâcieusement postée par Alp, n’était pas possible puisque mon code n’utilisait pas libglade.
novembre
2009
Gconfs, l’association de conférences de l’école EPITA organise une conférence F#, ce Jeudi 12 novembre 2009 à 21 h, cours pasteur 14,16 rue Voltaire au Kremlin-Bicêtre. Les conférenciers sont Laurent Le Brun et un auteur d’ouvrage sur F# dont le nom n’a pas été communiqué. Pour plus d’informations sur cet évènement consultez la page évènements de GConfs ou le forum forum news épita. mise à jour: l’autre conférencier est Robert Pickering, auteur de Foundations of […]
novembre
2009
Pour bien montrer qu’on maîtrise son sujet il est indispensable d’utiliser le bon vocabulaire. C’est essentiel pour communiquer sur sa compétence, tout particulièrement lors d’un entretien d’embauche où il s’agira avant tout de montrer à son examinateur qu’il a du talent. Ce petit lexique non exhaustif est fait pour vous aider à convaincre votre interlocuteur que vous êtes au moins aussi incompétent que lui. Conforté dans l’idée qu’il a enfin trouvé la personne à sa […]
octobre
2009
Le système d’exploitation MorphOS, un OS léger et convivial descendant de feu AmigaOS est enfin disponible sur matériel Apple. En plus de la mise à jour, la nouvelle version 2.4 du fameux système au papillon bleu apporte la compatibilité avec tous les modèles de Mac Mini PowerPC G4. La procédure d’enregistrement de MorphOS 2.4 est intégrée à la version de démonstration et consiste à : installer la version de démonstration librement téléchargeable utiliser l’outil RegTool […]
octobre
2009
Motifs variable Comme vous le savez sans doute le let ne permet pas seulement de déclarer une nouvelle variable par exemple ici la variable m : let choose = function | None -> None | Some n -> let m = minimum n n.left in Some (m.key,m.item) Motifs simples Il permet aussi de déconstruire une valeur selon un motif comme ici la paire (m,l) : let rec delete_min t = match t.left with | None […]
octobre
2009
À la lecture de The Art of the Propagator je me suis laissé convaincre que l’avenir de la programmation déclarative était dans la propagation logique. L’intérêt de la propagation c’est que le calcul monodirectionnel disparaît, le calcul devient multi-directionnel, la béta-réduction devient la béta-équivalence. Jusqu’à présent je m’étais toujours dit « et alors, quel intérêt ? ». C’est là que The Art of the Propagator apporte un argument de poids : le calcul monodirectionnel suppose un temps […]
octobre
2009
Dans mon petit exemple de ce jour on va utiliser l’application partielle pour faire l’inverse de ce qu’on en fait habituellement. Au lieu d’éliminer un argument on va au contraire en ajouter un supplémentaire. L’idée de départ c’est que, étant donné un opérateur diadic (supposé associatif à droite), nous l’appliquons deux fois pour pouvoir opérer sur 3 arguments: let triadic op a b c = op a (op b c);; Une application partielle sert à […]