Une approche logique classique
La logique est un bon support pour l'intelligence artificielle
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.