Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] proposal for library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Diego Olivier Fernandez Pons <fernandezpons@i...>
Subject: [Caml-list] proposal for library
Nicolas Carnasse a écrit :

> I also think it would be nice to have one big polymorphic data-
> structures library ( a la C++ Standard Template Library ) including 
> both mutable and non-mutable structures and most of the common
> algorithms - and perhaps some "misc" functions for strings and
> others...

Chris Okasaki avait annoncé il y a plusieurs années déjà une version
ML de sa librairie Edison actuellement seulement disponible en version
Haskell.
Ne voyant toujours pas la version ML venir, j'ai d'abord porté
quelques modules dont j'avais besoin, puis une partie de la libraire
(essentiellement les séquences).
J'avais en tête de poursuivre ce portage pendant les vacances.

Je dois cependant vous avertir sur un certain nombre de points :

- la création d'une librairie de structures de données n'est pas aussi
simple que cela pourrait en avoir l'air. J'en tiens pour preuve les
nombreuses discussions qui ont déjà eu lieu sur cette liste.

- la structure de la librairie Edison est un choix parmi d'autres
(tout comme la STL que vous prenez en exemple) est n'est pas
nécessairement le meilleur. Richard A. O'Keefe a dit avec raison dans
une discussion sur l'éventuel portage d'Edison vers Mercury « In
short, while we should certainly learn from Okasaki, we should not
imitate him slavishly ». 

- Ce qui vaut pour Edison vaut tout autant pour la STL. Je vous
renvoie à un article de Peyton Jones (Bulk types with class)

En somme votre affirmation « Once it'll be complete and safe, I don't
think there will be any problem for putting it into the official
distribution » n'est pas si évidente et un très important travail de
réflexion, discussion et concertation doit être fait au préalable.
Cela est d'autant plus vrai en Caml que ce dernier propose de nombreux
paradigmes de programmation (fonctionnelle, impérative, objets)

De surcroit, il faudrait y intégrer les nombreuses structures de
données déjà réalisées indépendamment par d'autres (patricia trees,
pomap, Splay trees, ...)

Pour ne pas finir sur une note négative, je signale quand même que la
présence d'une telle librairie, même si elle ne fait pas l'unanimité
serait interessante d'un point de vue pédagogique :

- implémentation fonctionnelle de structures de données (dans la
lignée du portage fait par Mottle des exemples du livre d'Okasaki)
- exemples élémentaires de programmation par objets (qui font parfois
défaut, comme l'ont prouvé certaines discussions sur cette liste, sur
la liste des débutants ou sur la liste ML)
- exemples de mélange fonctionnel / impératif

et surtout possibilité de comparer les différents paradigmes (puisque
les fonctionnalités offertes sont toujours les mêmes). C'est
d'ailleurs dans cette optique là que j'avais commencé le portage
d'Edison.

        Diego Olivier

 
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners