Article de reference

Logtalk

?- écrire ( 'Bonjour monde' ), nl . Bonjour monde vrai . Définition d'un objet : :- objet (mon_premier_objet). :- initialisation (( écrire ( 'Bonjour monde' ), nl )). :- public ...

?- écrire ( 'Bonjour monde' ), nl . Bonjour monde vrai .

Définition d'un objet :

:- objet (mon_premier_objet). :- initialisation (( écrire ( 'Bonjour monde' ), nl )). :- public (p1 / 0 ). p1 :- écrire ( 'Ceci est un prédicat public' ), nl . :- privé (p2 / 0 ). p2 :- écrire ( 'Ceci est un prédicat privé' ), nl . :- fin_objet .

En utilisant l'objet, en supposant qu'il soit enregistré dans un fichier my_first_object.lgt :

?- logtalk_load (mon_premier_objet). Bonjour monde vrai . ?- mon_premier_objet :: p1. Ceci est un prédicat public vrai .

Toute tentative d'accès au prédicat privé génère une erreur :

?- my_first_object :: p2. ERREUR : erreur( erreur_permission (accès, prédicat_privé, p2), my_first_object :: p2, utilisateur)

Fonctions anonymes

Logtalk utilise la syntaxe suivante pour les prédicats anonymes (expressions lambda) :

{ FreeVar1 , FreeVar2 , ... } / [ LambdaParameter1 , LambdaParameter2 , ...] >> Objectif

Voici un exemple simple sans variables libres et utilisant un prédicat de mappage de liste :

| ?- meta :: map([ X , Y ] >> ( Y is 2 * X ), [ 1 , 2 , 3 ], Ys ). Ys = [ 2 , 4 , 6 ] Oui

La curryfication est également prise en charge. L'exemple ci-dessus peut s'écrire :

| ?- meta :: map([ X ] >> ([ Y ] >> ( Y est 2 * X )), [ 1 , 2 , 3 ], Ys ). Ys = [ 2 , 4 , 6 ] Oui

Compatibilité avec le backend Prolog

Les compilateurs Prolog back-end pris en charge incluent B-Prolog , Ciao Prolog , CxProlog, ECLiPSe , GNU Prolog , JIProlog, Quintus Prolog , Scryer Prolog, SICStus Prolog , SWI-Prolog , Tau Prolog, Trealla Prolog, XSB et YAP . Logtalk permet l'utilisation de bibliothèques de compilation Prolog back-end à partir d'objets et de catégories.

Outils de développement

Logtalk propose une aide en ligne, un outil de documentation (capable de générer des fichiers PDF et HTML), un générateur de diagrammes d'entités, un débogueur intégré (basé sur une version étendue du modèle de boîte de procédure traditionnel présent sur la plupart des compilateurs Prolog), un framework de tests unitaires avec analyse de la couverture de code, et est également compatible avec certains profileurs Prolog back-end et traceurs graphiques.

Applications

Logtalk a été utilisé pour traiter les modèles de données STEP utilisés pour échanger des informations sur la fabrication de produits . Il a également été utilisé pour implémenter un système de raisonnement qui permet le raisonnement sur les préférences et la résolution de contraintes .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index