Même les foetus mentent ...
Par Dark-Side le dimanche, novembre 4 2007, 15:24 - Script - Lien permanent
Bonjour, bonjour.
Bon avant de commencer : le titre n'a rien à voir avec l'article, mais depuis 3x17 je reve de sortir cette phrase, alors bon ... c'est fait ! :]
Bon avant de commencer : le titre n'a rien à voir avec l'article, mais depuis 3x17 je reve de sortir cette phrase, alors bon ... c'est fait ! :]
Le prolog
Présentation
Le Prolog est un langage de programmation. Sa particularité est d'être un langage de programmation logique, d'où son nom : PROgrammation LOGique. Ce type de programmation se démarque des autres par son absence de notions tels que les fonctions (qu'on retrouve bien entendu, mais c'est pas aussi explicite qu'en impératif ou même en fonctionnel) ou boucles, ...Par contre on y trouve des idées intéressantes. En effet un programme développé en prolog repose sur un ensembles de clauses, des faits ou des règles.
Il faut savoir que le prolog est très utilisé pour établir des intelligences artificielles, en effet grâce on clauses on va très facilement définir le comportement de notre IA.
Un code en exemple : factoriel
Oui, je sais, j'ai dit que les fonctions n'éxistaient pas. Mais ça ne veut pas dire qu'on ne peut pas en créer, ça veut dire qu'elles sont moins apparentes que d'habitude.Comment ça je suis tordu ?
Bref voici le code :
fact(0,1). % ceci est un fait fact(X, Y) :- N is X-1, fact(N, M), Y is X * M. % et ça une règleComme vous pouvez le voir la première clause est un fait, c-a-d que pour tout X fact(0, X) renverra X = 1. Ce qui est marrant avec les faits c'est que leur réciproque marche de la même manière, ainsi fact(X, 1) renverra toujours X = 0. Donc avec un unique fait on a déclaré deux clauses.
Un autre truc marrant c'est que si jamais vous demandez à l'interpreteur si la relation fact(0,2) est vrai il va gentillement vous répondre : «No.»
L'autre truc fun c'est que si après on avait écrit fact(0, 2). lorsqu'on aurait demandé fact(0, X). l'interpreteur nous aurait fait la liste de toutes les réponses possibles.
Conclusion
Il est vrai que je n'ai pas fini de vous détailler le code précédent mais je suis pas là pour vour apprendre à coder, juste pour vous faire découvrir.J'essayerai de vous montrer une belle IA un de ces jours histoire que vous vous rendiez bien compte de l'interet du prolog. En attendant j'espère vous avoir suffisament intéressé pour que vous vous documentiez un peu sur le prolog.
Au revoir.
Liens externes :
:: Le prolog sur wikipedia. (fr):: Une bonne introduction pour débuter en prolog. (fr)
:: Un bon tuto. (en)
Commentaires