Lista składa się z głowy i ogona:
Lista = [Head|Tail]
Głowa (head) to wyszczególniony początkowy element (lub
początkowe elementy) listy
Listy
Ogon (tail) to lista pozostałych elementów
Ogon (jako listę) można dalej dekomponować:
Tail = [Tail_Head|Tail_Tail]
Szczególnym przypadkiem jest lista pusta [], która nie daje się
dalej dekomponować na głowę i ogon, ale sama może być ogonem:
3
[Element] = [Element|[]]
Lista jednowymiarowa tablica danych o dynamicznie
zmieniającym się rozmiarze
Deklaracja list odbywa się za pomocą znaku specjalnego *:
domains
Lista = Typ_danej*
gdzie Typ_danej może być jakimkolwiek prostym lub złożonym
typem (również listą), np.
domains
Lista_Integerow = Integer*
Lista_List_Integerow = Lista_Integerow*
2
Przetwarzanie rekurencyjne 2
regula(E,[E|_]):-
Warunek startu / stopu
przetwarzanie_1.
regula(E,[H|T]):-
przetwarzanie_2,
Rekurencja
regula(E,T).
Rekurencyjne przetwarzanie list -
- podsumowanie
Przerwij, gdy osiągniesz określony element
Przykłady:
element, pozycja1, usun_pierwszy
7
Przetwarzanie rekurencyjne 1 Przetwarzanie rekurencyjne 3
regula([]):- regula(1,E,[E|_].
Warunek startu / stopu Warunek startu / stopu
przetwarzanie_1([]).
regula([H|T]):- regula(N,E,[H|T]):-
przetwarzanie_2(H), NN = N-1,
Rekurencja Rekurencja
regula(T). regula(NN,E,T).
Przerwij, gdy osiągniesz listę pustą Przerwij, gdy osiągniesz określoną pozycję
Przykłady: Przykłady:
pisz_odwrotnie, dlugosc_listy, suma_listy, maximum1 pozycja
6 8
Wyszukiwarka
Podobne podstrony:
Prezentacja Wykład nr 5 PREZENTACJA wyklad TI 2prezentacja wyklad 4 PREZENTACJA wyklad TI 4prezentacja wyklad 9prezentacja wyklad 36?resowanie tcpip prezentacja wykladowaprezentacja wyklad 8 PREZENTACJA wyklad TI 1Prezentacja Wykład nr 3 Zdolność do bycia stronąprezentacja wyklad 2prezentacja wyklad 1prezentacja wyklad 1wyklad11 prezentacjaWyklad5 Studium wykonalnosci prezentacjaMNUM wykład1 prezentacjaprezentacja do wykladu obliczenia PCR i startery optymalizacjawyklad04 prezentacjaPrezentacja do wykladu 1 2 15 celwięcej podobnych podstron