• [^] # Re: c'est quoi un language fonctionnel ?

    Posté par . En réponse à la dépêche Two Dozens Short Lessons in Haskell. Évalué à 3.

    Petit rappel :

    Il existe deux grandes familles de langage : les langages impératifs et les autres (ou langages déclaratifs).
    haskell fait partie de cette deuxième catégorie.

    Les langages courants (comme C ou java) sont des langages impératifs, c'est à dire qu'un programme est une suite d'« impératifs » (opérations), qui sont exécutées dans un ordre précis.

    Dans la deuxième catégorie, on trouve les langage fonctionnel, mais aussi logique ou mixte (objet-fonctionnel).
    Dans ceux-ci, un programme ne doit pas être vu comme une suite d'opérations, mais comme une seule opération.

    Le langage qui va le plus loin est sans doute prolog, ou l'on écrit le résultat recherché en une suite d'assertions logiques, et non la manière de l'obtenir. C'est l'ordinateur qui se démerde derrière.

    Pour revenir aux langages fonctionnel : Ce sont des langages basés sur le lambda-calcul, mais qui apporte un degré similaire d'abstraction, qui est, à mon avis, bien plus naturelle que l'approche objet.

    Le programmeur se focalise sur le but et non sur les moyens de l'atteindre. C'est pourquoi on parle de langage déclaratif.

    Les avantages sont :
    - Une approche mathématique rigoureuse
    - Un code plus lisible et moins sujet à l'incompréhension homme-machine.

    Les inconvénients sont :
    - Une approche mathématique rigoureuse.

    Dans les langages fonctionnel, on trouve Lisp, Caml, Amanda, ...
    Mais je ne connais que Lisp, donc je ne peux rien dire sur les spécificités de Haskell.

    Pour terminer, il ya Ruby, un langage objet qui permet la programmation fonctionnelle, et qui me semble allier parfaitement les deux approches.