lista1
elementi di sintassi per prolog v.3 su Mac
funzioni numeriche logiche ..verifica e confronto..ordinamento..relazioni..file e disco
/* schema1 sommario sintassi */
funzioni numeriche
Radice is sqrt(numero) sqrt(numero,Radice)
Assoluto is abs(numero) abs(numero,Assoluto)
Intero is int(numero) int(numero,Intero)
Segno is sign(numero) sign(numero,Segno)
Lognaturale is ln(numero) ln(numero,Lognaturale)
Logdecimale is ln(numero)/ln(10)
Potenza is pwr(base,esponente) pwr(base,esponente,Potenza) pwr(Base,esponente,potenza)
Seno is sin(radianti) sin(radianti,Seno)
Coseno is cos(radianti) cos(radianti,Coseno)
Tangente is tan(radianti) tan(radianti,Tangente)
Arcoseno is sin(numero) sin(numero,Arcoseno)
Arcocoseno is cos(numero) cos(numero,Arcocoseno)
Arcotangente is tan(numero) tan(numero,Arcotangente)
Gradi is deg_rad(gradi) deg_rad(gradi,Radianti)
Radianti is deg_grad(radianti) deg_grad(Gradi,radianti)
Pigreco is pi
Casuale is irand(numero) irand(numero,Casuale) Casuale is irand(numero)++1
Somma is A+B+C (+)(A,B,Somma)
Differenza is A-B (-)(A,B,Differenza)
Prodotto is A*B *(A,B,Prodotto)
Quoziente is A/B /(A,B,Quoziente)
++(A,B,Somma) --(A,B,Differenza) **(A,B,Prodotto) //(A,B,Quoziente)
Resto is A mod B mod(A,B,Resto)
A+B=:=X A+B=\=X not(A+B=:=X) not(A+B=\=X) A<B A>B A=B A³B A²B
/* schema3 relazioni logiche AND OR */ /* /\(A,B,N)
\/(A,B,N)
(\)(A,N)*/
È(A,B,N)
//(A,B,N)
Ç(A,B,N)
**(A,B,N)
/* test di verifica e confronto */
testo=testo A=A numero=numero
X\=Y
X Y
not(X=Y)
X==Y
X\==Y
not(X==Y)
unify(X,Y)
compare(=,X,Y) compare(==,X,Y) compare(<,X,Y) compare(>,X,Y)
compare(V,X,Y)
X @> Y X @< Y X @= Y X @>=Y X @<=Y
ordinamento e gestione stringhe
mem(a(b,c,d,e),[posizione],Trova) mem(a(b,c(x,y,z),d,e),[3,2],Trova)
sort([f,s,e,d,g],Ordina) sort([f,e,g,r,d],Ordina,1) sort([f,g,r,f,d],Ordina,-1)
keysort([4-a,2-b,7-h],Ordina) keysort([4-a,2-b,7-h],Ordina,1) keysort([4-a,2-b,7-h],Ordina,-1)
append(lista1,lista2,Listaunione)
on(a,[a,b,c,d]) on(X,[a,b,c,d])
length([a,b,c],Lunghezza) length([a,b,c],numero) length(Y,numero) length([a,b|Y],Lista) length(functore(X,Y,Z),Lista) length(functore([a,b,c]),Lista)
remove(a,[a,b,c,d],Resto) remove(h,Lista,[a,b,c,d]) remove(E,[2,3,4],Resto)
remove_all([a,b,c],[a,b,c,a,a,c,b,d],Resto)
reverse([a,g,d,e],Inversa)
/* schema4 */
stringof(lista,Parola) stringof(Parola,lista) stringof([f,r,a,X,e],frase)
charof('A',65) charof(carattere,Codice)
name(parola,Lista)
concat(maria,rosa,Risultato)
gensym(termine,Simbolo)
init_gensym(termine,numero)
genint(numero,numero)
pname(termine,Nome)
version(Versione)
date(Anno,Mese,Giorno) date(1995,2,2,Data)
time(Ora,Minuti,Secondi) time(11,34,43,Tempo)
relazioni /* schema5 */
assert(relazione) assert(grelazione,listavariabili)
asserta(relazione) asserta(grelazione,listavariabili)
assertx(relazione,posizione) assertx(grelazione,listavariabili,posizione)
relazione(X,Y)
retract(relazione)
retractx(relazione,posizione)
retractall(relazione)
abolish(nomerelazione,numero)
kill(relazione)
clause(relazione,variabile)
clausex(relazione,variabili)
xrefs(nomerelazione,V) crefs(nomerelazione,V)
def(relazione) idef(relazione) cdef(relazione) sdef(relazione)
dict(lista) idict(lista) cdict(lista) sdict(lista)
listing listing(relazione)
gestione file e disco
save(nomeprogramma) save(nome,disco) save(nome,disco,lista)
csave(nome) csave(nome,disco)
consult(nome) consult(nome,disco)
cload(nome) cload(nome,disco)