Sei sulla pagina 1di 2

[X,Y|Z] [rossi,verdi] X=rossi Y=verdi Z=[] ->lista vuota

[X,Y|Z] [prolog,lisp,pascal] X=prolog Y=lisp Z=[pascal] -> lista con un solo elemento

[X,Y,Z] [prolog,lisp,pascal] X=prolog Y=lisp Z=pascal -> associo ad ogni variabile un valore

[studenti,[Y,Z]] [X,[mario,giovanni]] X=studenti Y=mario Z=giovanni


Variabile studenti
Sottolista con y=mario e z=giovanni che sono studenti

e_una_lista([questo,e,un,paragrafo,sulle,liste]).
? e_una_lista([X|Y])
X = questo,
Y = [e, un, paragrafo, sulle, liste]

e_una_lista([_|Y]) %quando uso _ non voglio considerare qualcosa%


Y = [e, un, paragrafo, sulle, liste]

e_una_lista([_,_,_,[X|_]]) restituisce false perché sto cercando di creare una lista che non c’è
false

e_una_lista([_,_,_,X|_])
X = paragrafo

e_una_lista([la,vispa,teresa,[avea,tra,l,erbetta]]).
e_una_lista([_,_,_,[X|_]]) qui invece mi restituisce avea perché c’è una sottolista.
X = avea

% add

add(X,L,[X|L]).
add(a,[b,c,d,e],L).
L = [a, b, c, d, e]

%delete

del(X,[X|L],L).

del(X,[T|C],[T|C1]) :- del(X,C,C1).
del(a,[a,b,c,d,e],L).
L = [b, c, d, e]
%insert

insert(X,L,L1) :- del(X,L1,L).
insert([a,b],[a,b,c,d,e],L).

L = [[a, b], a, b, c, d, e]
L = [a, [a, b], b, c, d, e]
L = [a, b, [a, b], c, d, e]
L = [a, b, c, [a, b], d, e]
L = [a, b, c, d, [a, b], e]
L = [a, b, c, d, e, [a, b]]

insert(f,[a,b,c,d,e],L).
L = [f, a, b, c, d, e]
L = [a, f, b, c, d, e]
L = [a, b, f, c, d, e]
L = [a, b, c, f, d, e]
L = [a, b, c, d, f, e]
L = [a, b, c, d, e, f]

Potrebbero piacerti anche