Une approche logique classique

La logique est un bon support pour l'intelligence artificielle

La programmation fonctionnelle au secours de l'Intelligence artificielle
L'intelligence artificielle et la programmation fonctionnelle

La programmation dite « fonctionnelle » est encore une autre forme de programmation que l'on m'a enseigné en IUT Informatique. Le point central de ce type de programmation est, comme son nom l'indique, la « fonction ». Une fonction LISP correspond grossièrement à la définition de fonction en mathématique. Ce langage est fortement orienté vers le traitement de listes et le calcul symbolique. Il s'inspire fortement de la logique.

La syntaxe de LISP est uniquement composée d'atomes et de listes. Un atome étant soit une constante, soit une suite de symboles (texte), soit une primitive prédéfinie, et une liste étant composée d'atomes ou d'autres listes. C'est logique, non ?

On peut ainsi représenter la fonction addition en LISP de la manière suivante :

    (+ 24 36)

   qui correspondra à l'addition des nombres 24 et 36 = 60

    (SETQ A 24)
    (SETQ B 36) permettent d'affecter des valeurs à des variables.
    (+ A B) donnera donc pour résultat 60.

Les listes peuvent s'imbriquer et on peut avoir une expression telle que celle-ci :

    (+ A (* 3 (+ 6 6))) dans laquelle la fonction la plus imbriquée sera évaluée en premier avant d'évaluer les autres en respectant l'ordre d'imbrication.

Un programme écrit en LISP est une suite de listes dont les premiers termes représentent des fonctions. La fonction sinus, par exemple, sera notée (sin x) ou x représente un paramètre de la fonction sin.

Il est possible de définir en LISP de nouvelles fonctions qui sont constituées à partir de fonctions existantes et il existe de nombreuses fonctions pour manipuler les listes. Une nouvelle fonction pouvant elle même être passée en paramètre d'une autre fonction, la programmation fonctionnelle ouvre des facilités que ne proposent pas les autres langages.

L'une des applications récente de la programmation fonctionnelle est son utilisation pour traiter des documents XML. En effet, les langages de programmation fonctionnelle offrent un ensemble de fonctionnalités très pratiques pour représenter et manipuler des arbres et il est naturel de se représenter les documents XML comme des structures arborescentes.

D'autres applications de programmation fonctionnelle se retrouvent notamment dans l'élaboration de feuilles de calculs Excel relativement complexes avec des cellules dont le résultat est conditionnel. La notation utilisée, avec différents degrés d'imbrications, ressemble beaucoup à la notation LISP.

LISP et son frère SCHEME ont aussi été des langages de prédilection pour les travaux en relation avec l'intelligence artificielle. Mais l'arrivée de nouveaux langages plus perfectionnés les a relégués au second plan.