Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] [ANN] The Missing Library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alexander V. Voinov <avoinov@z...>
Subject: Re: [Caml-list] [ANN] The Missing Library
Hi All,

Kenneth Knowles wrote:

>I assume you are aware the two ExtLib libraries that are also "missing" standard
>library functionality?  I can't help but suggest some cooperation between your
>three efforts to make one very well designed extended standard library (under a
>new name that is more "positive," and not conflicting with another
>project)
>  
>
I'd second this. For about a year now, I've been using one of these 
extlibs, one which implements tail-recursive versions of the list 
operations, and never looked back. Recently I had to install another 
extlib because a package I need depends on it. This does not, of course, 
increase maintanability and all other -bilities you may imagine.

Thank you!

Alexander

>Kenn
>
>
>On Fri, Apr 23, 2004 at 01:51:48PM -0500, John Goerzen wrote:
>  
>
>>Hello,
>>
>>Some of you may remember my complaints about missing functions in the
>>standard library.  To help address those, I have started work on my own
>>OCaml library to augment the standard functions.  You can obtain it,
>>along with online API docs covering every function, at: 
>>
>>  gopher://quux.org/1/devel/missinglib
>>  
>>  or
>>
>>  http://quux.org/devel/missinglib
>>
>>[Debian users: I have uploaded it to sid, but will take a few days to
>>appear.]
>>
>>Some excerpts from the README:
>>
>>Missinglib is a collection of OCaml-related utilities.  The following
>>modules are are provided:
>>
>>ConfigParser            System for parsing configuration files
>>Hashtbloper             Hash table convenience operators
>>Hashtblutil             Hash table utilities
>>Lexingutil              Lexing-related utilities
>>Listutil                List-manipulation utilities
>>Slice                   Underlying API for Slice operators
>>Sliceoper               Flexible subparts of arrays, lists, and strings
>>Streamutil              Stream parser utilities
>>Strutil                 String-related utilities
>>
>>The entire library has no prerequisites save the OCaml standard library and
>>findlib and is designed to install without complexity on a variety of
>>systems.  It could also easily be embedded within your own source trees
>>so that users need not have it installed beforehand.
>>
>>----------
>>
>>I would greatly appreciate constructive criticism on any aspect of the
>>package, especially the build system.  I have tried to make it possible
>>to "make; make install" on just about any platform, regardless of
>>availability of ocamlopt.  It took some hoop-jumping, though, so
>>suggestions are welcome :-)
>>
>>Some basic info on the modules present: The ConfigParser module can read
>>and write sectioned .INI-style files and is mostly compatible with
>>Python's ConfigParser module.  Sliceoper defines some more powerful ways
>>of indexing arrays, lists, and strings (some of these concepts were
>>discussed on this list).  Strutil provides functions like strip, lstrip,
>>and rstrip (removes whitespace from either end, beginning, or end, of a
>>string).  Listutil provides a "replace" that is analogous to
>>Hashtbl.replace, but for association lists; and "sub" that is similar to
>>String.sub or Array.sub.  Hashtbloper defines some more useful ways of
>>working with hash tables, such as:
>>
>>  hash /> 5 
>>
>>   is the same as: 
>>
>>  Hashtbl.find hash 5 
>>
>>    let sections = Hashtbl.create 5;;
>>    let options = Hashtbl.create 5;;
>>    Hashtbl.replace options "option1" "value1";;
>>    Hashtbl.replace sections "section1" options;;
>>    sections /> "section1" /> "option1";;
>>                 returns "value1" 
>>
>>   let newhash = hash // ("key", "value");; 
>>
>>      (Copies hash, adds the pair to the copy, and returns it -- similar
>>       in concept to :: for lists)
>>
>>BTW, is this list the right place for a message like this?
>>
>>-- John
>>
>>-------------------
>>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
>>    
>>
>
>-------------------
>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
>
>  
>

-------------------
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