Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: [Caml-list] types & design advices (musical program)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Diego Olivier Fernandez Pons <Diego-Olivier.FERNANDEZ-PONS@c...>
Subject: Re: [Caml-list] types & design advices (musical program)
On Mon, 21 Oct 2002, Kontra, Gergely wrote:

> [...]
> >If you mean harmonisation, it is a well known problem and has been
> >studied in constraint programming world (since it is a declarative
> >problem).
> [...]
> That being the case, Prolog is the right language to implement this
> problem, isn't it? (Well, it doesn't have static type checking...)

Pure Prolog won't be of much help, so by Prolog we mean CLP (Prolog
IV, CHIP, etc.)

Prolog has several problems that haven't been yet correctly solved :
- no static type-checking, no type inference
- awfully slow (even compiled Prologs)
- unredable programs if their natural form is not declarative
- no modules (I saw recently a post by Fages in the prolog-list
proposing to develop a Caml-like module system, but for the moment it
hasn't been done), no first-class functions
- very few librairies

In the Lambda Prolog FAQ you can read that Lambda Prolog has :
- polymorphic typing
- modular programming
- abstract data types
- higher order programming

(There terms do not have always exactly the same meaning that in ML

But Lambda Prolog is not yet a mature language and you still have
serious problems when you need to write non declarative code.

For the moment, the best systems seem to be CLP libraries over an
already existing language, like :
- ILOG Solver (C++)
- Screamer (Lisp)
- FaCiLe (Caml)

The FaCiLe description points out that :

"As FaCiLe is an OCaml library and not "yet another language", the
user benefits from type inference and string typing discipline, high
level of abstraction, modules and objects system, as well as native
code compilation efficiency, garbage collection and replay debugger,
all features of OCaml (among other) that allow to prototype and
experiment quickly : modeling, data processing and interface are
implemented with the same powerful and efficient language"

        Diego Olivier

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: