-------------------------------------------------------------------------------len(L,N) "N e` la lunghezza (numero di elementi) di L" (realizzazione ricorsiva)len1(L,N) "N e` la lunghezza (numero di elementi) di L" (realizzazione iterativa)Esempi:| ?- len([a,b,c],N).N = 3 ? ;no| ?- len([a,b,[c,d,e]],N).N = 3 ? ;no-------------------------------------------------------------------------------num(L,N) "N e` il numero di atomi nella lista L"Esempi:| ?- num([a,b,c],N).N = 3 ? ;no| ?- num([a,b,[c,d,e]],N).N = 5 ? ;no-------------------------------------------------------------------------------depth_member(T,L) "T appartiene alla lista L o, ricorsivamente, ad una lista che appartiene a L"Esempio:| ?- depth_member(X,[a,b,[c,d,e]]).X = a ? ;X = b ? ;X = [c,d,e] ? ;X = c ? ;X = d ? ;X = e ? ;no-------------------------------------------------------------------------------append(L1,L2,L) "L e` la concatenazione delle liste L1 e L2"Esempio:| ?- append([a,b],[c],L).L = [a,b,c] ? ;no-------------------------------------------------------------------------------reverse(L1,L2) "L2 e` la lista inversa di L1" (realizzazione ricorsiva)reverse1(L1,L2) "L2 e` la lista inversa di L1" (realizzazione iterativa)Esempi:| ?- reverse([a,b,c],L).L = [c,b,a] ? ;no| ?- reverse([a,b,[c,d,e]],L).L = [[c,d,e],b,a] ? ;no