predmeti:ppj:seznami
Seznami
Sintaksa podobna javanski ali pythonovski
prazen seznam: []
seznam z elementi: [1,2,3]
seznam lahko vsebuje različne stvari: [a,b,1,2]
… tudi druge sezname: [a,1,[c,2]]
… in spremenljivke: [a,b,X,Y]
Interna predstavitev s strukturo .(H,T)
(SWI-Prolog ≥ 7 uporablja funktor [|]
namesto .
)
povezan seznam (linked list), ne polje (array)!
primer: drevo za [a,b,c]
dostop le do prvega elementa, v splošnem O(n)
Prilagajanje
L = [a,b,c]
[X,Y,Z] = [a,b,c]
seznam lahko razbijemo na glavo in rep
… lahko pa ga sestavimo iz glave in repa
… praznega seznama ne moremo razbiti
glava H
je prvi element seznama
glava je lahko tudi seznam, npr. [H|T] = [ [a,b], 1, 2, 3 ]
rep T
je vedno seznam, lahko pa je prazen
z začetka seznama lahko vzamemo več elementov
Naloge
insert/3
memb/2
del/3
dup/2
conc/3
last_elem/2
divide/3
permute/2
predmeti/ppj/seznami.txt · Last modified: 2016/04/12 11:53 by timotej