Esempi di predicati in PrologDi Fusco Francesco::2011-03-09
/* Esempi di predicati in Prolog */
/* ama(persona,hobby) */
ama(elena,lettura).
ama(gianni, computer).
ama(gianni,calcio).
ama(leonardo, nuoto).
ama(enzo,basket).
ama(enzo,lettura).
Lanciata l'esecuzione di Prolog (ho installato ex-novo una versione di Swi Prolog)
francesco@linux:~> swipl
% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 4,240 bytes
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.10.0)
Copyright (c) 1990-2010 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
e caricato il file dei predicati, salvato con il nome di hobby.pl
?- consult(hobby).
% hobby compiled 0.00 sec, 2,456 bytes
true.
?-
inizio l'interrogazione. Mi chiedo, quali sono gli hobby di gianni ?
?- ama(gianni,X).
mo dovrebbe restituire tutti gli hobby di gianni:
X = computer ;
X = calcio.
Chi ama il basket ?
?- ama(X,basket).
X = enzo ;
false.
Se volessi visualizzare tutte le persone con tutti i loro hobby, scriverei:
?- ama(X,Y).
X = elena,
Y = lettura ;
X = gianni,
Y = computer ;
X = gianni,
Y = calcio ;
X = leonardo,
Y = nuoto ;
X = enzo,
Y = basket ;
X = enzo,
Y = lettura.
?-
Il segno ?- è il prompt di Prolog in attesa di interrogazioni e/o comandi.
Programming in Prolog: Using the ISO Standard