Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
[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
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([_,_,_,[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]