Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
OCaml
Edit
PageHistory
Diff
Info
LikePages
[OCaml | http://www.ocaml.org] (Objective Caml) is a functional ProgrammingLanguage that's easy to learn and use yet amazingly powerful. It is a dialect of [ML] and features a powerful modules system, full support of ObjectOrientation, and an optimizing [Compiler]. !! The [OCaml] implementation There is a single OpenSource implementation of [OCaml] developed by INRIA (the main French research institute for computer science). A large community of users who don't want their code broken pressure the Ocaml development team to keep new versions standard or backwards compatible. [Python] and [Perl] are developed the same way. This approach works well once the community user is large enough. Ocaml's user community has been the necessary size for many years. (An interpreter for the older [Caml Light | http://caml.inria.fr/overview-caml-light-eng.html] language is still available because it can be made to work on small computers, e.g. 286 PCs. It is a subset of Objective Caml, so there is little other reason to use it.) !! ObjectOrientation One of [OCaml]'s extensions to the original [ML] language is ObjectOrientation. [OCaml]'s [OOP] has everything you'd expect after using [Java] or [C++]. The syntax is quite different -- class declarations are much more compact. PolymorphicTypes are a big improvement for container classes. In [C++] and [Java] container objects only recognise objects inside themselves as being members of the __Object__ class. You have to cast objects back the appropriate class when you remove them from the container. In [OCaml], if you want a container object to specifically contain objects that are of the class __fruitbat__, you can say so. See [Objects in Caml | http://pauillac.inria.fr/ocaml/htmlman/manual005.html] !! The [OCaml] Library [OCaml]'s library is divided into: * a [core library |http://caml.inria.fr/ocaml/htmlman/manual033.html], types and function available at all times * an implementation independent [standard library | http://caml.inria.fr/ocaml/htmlman/manual034.html], modules that can be imported * a set of [optional libraries | http://caml.inria.fr/ocaml/htmlman/index.html#p:library] that are either implementation dependent or special purpose The <tt>str</tt> RegularExpression library that comes with [OCaml] is rather clumsy. I recommend the [PCRE | http://www.ai.univie.ac.at/~markus/home/ocaml_sources.html] library instead. !! See also * [The Caml language | http://caml.inria.fr/] * [Developing Applications With Objective Caml | http://caml.inria.fr/oreilly-book/] by O'Reilly * [Software in OCaml | http://www.npc.de/ocaml/linkdb/] * [An OCaml tutorial | http://www.merjis.com/developers/ocaml_tutorial] * [The Caml Link Database | http://www.npc.de/ocaml/linkdb/] * [The Hump | http://caml.inria.fr/humps/index.html] ----- CategoryProgrammingLanguages, CategoryFunctionalProgrammingLanguages
5 pages link to
OCaml
:
PolymorphicTypes
YAML
ML
Brainf*ck
C++