OCaml for the Skeptical

OCaml's Extensive Libraries

Unless you relish reinventing the wheel every time you start a project, you need a language that comes with standard libraries sufficient for modern programming. Like most languages, OCaml distinguishes between libraries that come with the language and which are supported by the language developers, and third-party libraries contributed by the community.

The OCaml standard library includes numbers of various sizes (including arbitrary-precision rationals), strings, Booleans, arrays, tuples and of course lists; a portable I/O library and a more sophisticated POSIX one; a large set of data structures including extensible buffers, hash tables, association tables, queues, stacks, sets, streams ("infinite" lists), disk-based hash tables (DBM); and libraries for command line argument parsing, MD5 message digests, scanf-style input and printf-style output formatting, filename manipulation, marshalling of data structures to disk, random number generation, sorting, weak pointers (for implementing caches), threads, a very complete library of POSIX and Unix system calls (including networking), regular expressions, a simple portable graphics library and bindings for the Tk GUI.

The OCaml community has contributed hundreds of well-written libraries, many of which can be browsed at the Caml Humps. Some of the stuff available includes (sorry, haven't had time to link to all this):