• # Le plus adapté semble l'OCaml de l'INRIA.

    Posté par . En réponse au message Quel langage fonctionnel pour commencer?. Évalué à 1.

    Il y a plusieurs possibilités, chacune ayant ses avantages et ses inconvéniants.
    Principalement, on a :

    - Les langages de la famille Lisp, caractérisés par :
    · Une syntaxe so çekçy ;
    · Une syntaxe un peu lourde et qui demande un peu d'habitude ;
    · Proches de la perfection ;
    · Faciles à apprendre ;
    · Emacs est basé sur l'Elisp, donc posibilité de coder pour Emacs :D ;
    · L'Outil DrScheme et la présence de nombreux livres permettent un apprentissage rapide et efficace du Scheme (l'un des principaux dialectes LISP, l'autre étant Common Lisp).

    - Le Haskell, que je ne connais pas beaucoup, mais dont certaines caractéristiques sont :
    · Un langage pur (pas d'effets de bords et tout et tout, sûrement le langage fonctionnel le plus parfait) ;
    · Plus difficile à apprendre ;
    · Une syntaxe moche et illisible (c'est juste mon avis perso) ;
    · Des compilos lourds... très lourds (mais c'est juste une question d'implémentation, y'en a ptêtre des bien et légers que j'connais pas).

    - Les langages ml et spécialement caml/Ocaml qui apportent :
    · Une syntaxe simple, lisible, mais moins belle que celle du LISP ;
    · Facile à apprendre, très bien documenté, facile à utiliser ;
    · Proche de la perfection :D ;
    · Performant ;
    · Pleins pleins d'avantages exposés la page wikipedia qui est très bien faite.

    Personnellement, je conseillerai plutôt le caml ( http://caml.inria.fr/ocaml/index.fr.html ) car c'est le plus adapté aux débutants dans le fonctionnel.

    Chacun de ces langages dispose de bonnes implémentations, adaptés pour de nombreuses utilisations (à part le Common Lisp, dont il n'existe aucun compilateur/interpréteur correct qui gère les librairies graphiques). La plupart du temps, il est possible de les interpréter, de les byte-compiler (pour accroître les performances tout en gardant une portabilité maximale), ou de les compiler nativement.