cercare4
cercare elementi
/* notand.map */
nowarnings domains nome = symbol predicates padre(nome,nome) maschio(nome) femmina(nome) figlia(nome) figlio(nome) unico(nome) doppio(nome) clauses padre(carlo,luigi). padre(carlo,anna). padre(aldo,alberto). padre(aldo,elisa). padre(alvise,gino). padre(alvise,rodolfo). maschio(luigi). maschio(alberto). maschio(gino). maschio(rodolfo). femmina(anna). femmina(elisa).
/* cerca padri con figli femmina */ figlia(P) if padre(P,F) and femmina(F).
/* cerca padri con figli maschi */ figlio(P) if padre(P,F) and maschio(F).
/* cerca padri con figli maschi */ unico(P) if padre(P,F) and not(femmina(F)).
/* cerca padri con figlie */ doppio(P) if padre(P,F) and not(maschio(F)).
/* notand2.map */ /* variante di notand con stampa padre figlio */
nowarnings domains nome = symbol
predicates padre(nome,nome) maschio(nome) femmina(nome) figlia(nome,nome) figlio(nome,nome) unico(nome,nome) doppio(nome,nome) dati(nome,nome)
clauses padre(carlo,luigi). padre(carlo,anna). padre(aldo,alberto). padre(aldo,elisa). padre(alvise,gino). padre(alvise,rodolfo). maschio(luigi). maschio(alberto). maschio(gino). maschio(rodolfo). femmina(anna). femmina(elisa).
/* stampa dati globali */ dati(P,F) if padre(P,F).
/* cerca padri con figli femmina */ figlia(P,F) if padre(P,F) and femmina(F).
/* cerca padri con figli maschi */ figlio(P,F) if padre(P,F) and maschio(F).
/* cerca padri con figli maschi */ unico(P,F) if padre(P,F) and not(femmina(F)).
/* cerca padri con figlie */ doppio(P,F) if padre(P,F) and not(maschio(F)).