Browse thread
[ANN] Kaputt 1.0 alpha
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2008-11-24 (19:13) |
From: | forum@x9c.fr <forum@x...> |
Subject: | Re: [Caml-list] [ANN] Kaputt 1.0 alpha |
Le 24 nov. 08 à 17:52, Yoann Padioleau a écrit : > forum@x9c.fr writes: > > Hi Xavier, > >> Selon Stefano Zacchiroli <zack@upsilon.cc>: >> >>> (...) >> >> I was indeed aware of oUnit when I started working on Kaputt. >> The initial intent was to provide OCaml with something along >> the lines of the QuickCheck library developed for Haskell >> (http://www.cs.chalmers.se/~rjmh/QuickCheck/). Clones of QuickCheck >> exist for various languages (caml-list@inria.fr) but not for OCaml, > > Actually I posted a few years ago a small module imitating parts of > quicheck: > > http://aryx.kicks-ass.org/~pad/ocaml/quickcheck.ml Sorry, I failed to remember this. > Apparently they even now use my ugly file in the Janet Street Core > Library. > > >> even if a QuickCheck equivalent is provided by the Reins library >> (http://ocaml-reins.sourceforge.net/). > > I didn't find much in this ocaml reins library ... and it > looks quite heavy in functors ... Yes, I indeed wanted to rely upon functions/combinators instead. It seems lighter this way. > 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 ? Xavier