English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[ANN] Kaputt 1.0 alpha
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-11-24 (22:07)
From: Yoann Padioleau <padator@w...>
Subject: Re: [Caml-list] [ANN] Kaputt 1.0 alpha
Christophe Raffalli <Christophe.Raffalli@univ-savoie.fr> writes:

>>> Your library looks very good, very clean. I just noticed you missed
>>> the 'pair' and 'tuple' random generators.
>> Well, maybe their names are not intuitive but Generator.zip{1..5}
>> allows to combine n generators into a generator returning tuples
>> of order n (zip1 being the identity function).
>>> One criticism is that like many other libraries, such as oUnit,
>>> ocamlcalendar, they seem a little bit heavyweight. You got hundreds
>>> of functions, 5 modules ...
>> That's true but it seems hard to have a combinator-based library with
>> few functions/combinators. With too few combinators, you leave too
>> much work to the developer (including a lot a boilerplate code).
>> With too many combinators, you request the developer to take more
>> time in order to use the library. I find it hard to calibrate the size of
>> the library.
>> Maybe things could be done in a lighter way by using objects ?

> Or a camlp4 extension to build the intended function(s) by induction on
> the type definition.
> you could include that as part of deriving
> (http://code.google.com/p/deriving/)

Which would make it even more heavyweight by forcing now the client
to use campl4, to download your deriving library, to understand
this deriving stuff, to infer the names of the functions
now that they will be hidden/internally-generated by campl4 ... 

Look at the ocaml standard library, why do you like it ? 
Because it's simple. A few types, a "kernel" of essential functions,
not too much functors (well in fact I would prefer even less functors
such as a simpler Map and Set like the Hashtbl module). KISS.

> Hope this helps,
> Christophe
>> Xavier