From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA03390 for caml-redistribution@pauillac.inria.fr; Wed, 8 Mar 2000 19:26:38 +0100 (MET) Resent-Message-Id: <200003081826.TAA03390@pauillac.inria.fr> Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA12220 for ; Tue, 7 Mar 2000 16:24:02 +0100 (MET) Received: from miss.wu-wien.ac.at (miss.wu-wien.ac.at [137.208.107.17]) by nez-perce.inria.fr (8.8.7/8.8.7) with ESMTP id QAA02633 for ; Tue, 7 Mar 2000 16:24:01 +0100 (MET) Received: (from mottl@localhost) by miss.wu-wien.ac.at (8.9.0/8.9.0) id QAA12371 for caml-list@inria.fr; Tue, 7 Mar 2000 16:24:01 +0100 (MET) From: Markus Mottl Message-Id: <200003071524.QAA12371@miss.wu-wien.ac.at> Subject: additions to standard library? To: caml-list@inria.fr (OCAML) Date: Tue, 7 Mar 2000 16:24:00 +0100 (MET) X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Resent-From: weis@pauillac.inria.fr Resent-Date: Wed, 8 Mar 2000 19:26:38 +0100 Resent-To: caml-redistribution@pauillac.inria.fr Hello, it sometimes happens that I need functions on abstract data types in the standard library which are not available there, but could be considered as "usual" operations on such data. Also some other very commonly useful functions could be added. I was just wondering which way would be best to propose additions to the standard libraries - I have modified a few standard modules, which now contain additional functionality that might be useful for others, too. Is it a good idea to send patches against the standard library in the hope that they might be integrated? Some specific examples include, e.g.: * Char: functions like is_upper, is_lower, is_alpha, is_... * Set: functions like for_all, exists, filter (find_all), partition. These functions are in "List", too, but actually fit perfectly to sets. * Stack: with function top Currently, the only way to use "Stack" in such a way is to pop an element and push it again... * String: the functions explode and implode for conversions of char lists to strings and vice versa. Especially useful for teaching, because it allows students to use a functional style of programming when implementing string algorithms. There are some other additions, too, which I haven't yet fully integrated into standard library modules. Other people surely also have proposals for further additions to the libraries. I can imagine that the OCaml-development team does not have the time to deal with all such suggestions. What do you think about the idea to make use of the "usercontrib" CVS-repository at INRIA for such purposes? We could open a "stable" and "development" branch for standard libraries (and "otherlibs") there, where people could place and "peer review" their contributions. From time to time, the OCaml-team can peek at the additions and take what they consider useful. This approach might be appealing to both sides: * the OCaml-team can decide when to integrate what and won't get a bad conscience by having to "bin" user suggestions. Additionally, some "boring" development work can be delegated to the user community (I know that developing compilers is more interesting than writing standard libraries... ;-) * the user community finally has a means to express their wishes in a more direct way - which might increase the probability that suggestions really get considered. What do the developers and other users think of this idea? Best regards, Markus Mottl -- Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl