prezentacja wyklad 5

background image

Typy danych i unifikacja -

- podsumowanie

2

Typy danych

(termów):

-

liczbowe

- rzeczywiste: real
- całkowite: integer, short, long, ulong, byte itd.

-

nieliczbowe

(atomy)

- char
- symbol i string

-

struktury zło

ż

one

: funktor(argumenty)

- listy

Zmienne

:

- pisane z du

ż

ej litery

- zmienna anonimowa _

3

Unifikacja

:

-

stała = stała

- prawdziwe tylko wtedy, gdy obie stałe s

ą

takie same

-

zmienna = stała

- je

ś

li zmienna jest nieukonkretniona to warto

ść

stałej zostaje

podstawiona za zmienn

ą

(ukonkretnia j

ą

)

- je

ś

li zmienna jest ukonkretniona to patrz stała = stała

-

zmienna = zmienna

- je

ś

li jedna ze zmiennych jest nieukonkretniona a druga

ukonkretniona, to warto

ść

tej ukonkretnionej zostaje

podstawiona za zmienn

ą

nieukonkretnion

ą

- je

ś

li obie zmienne s

ą

ukonkretnione to patrz stała = stała

- je

ś

li obie zmienne s

ą

nieukonkretnione, wtedy unifikacja

powoduje,

ż

e staj

ą

si

ę

synonimami

Listy

background image

5

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*

6

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

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:

[Element] = [Element|[]]

Rekurencyjne przetwarzanie list -

- podsumowanie

8

regula([]):-

przetwarzanie_1([]).

regula([H|T]):-

przetwarzanie_2(H),
regula(T).

Przetwarzanie rekurencyjne 1

Warunek startu / stopu

Rekurencja

Przerwij, gdy osi

ą

gniesz list

ę

pust

ą

Przykłady:

pisz_odwrotnie, dlugosc_listy, suma_listy, maximum1

background image

9

regula(E,[E|_]):-

przetwarzanie_1.

regula(E,[H|T]):-

przetwarzanie_2,
regula(E,T).

Przetwarzanie rekurencyjne 2

Warunek startu / stopu

Rekurencja

Przerwij, gdy osi

ą

gniesz okre

ś

lony element

Przykłady:

element, pozycja1, usun_pierwszy

10

regula(1,E,[E|_].

regula(N,E,[H|T]):-

NN = N-1,
regula(NN,E,T).

Przetwarzanie rekurencyjne 3

Warunek startu / stopu

Rekurencja

Przerwij, gdy osi

ą

gniesz okre

ś

lon

ą

pozycj

ę

Przykłady:

pozycja


Wyszukiwarka

Podobne podstrony:
Strategie marketingowe prezentacje wykład
Prezentacja wykłady I IV
percepcja wzrokowa - prezentacja, Wykłady
PREZENTACJA wyklad TI 4
prezentacja wyklad 3
Prezentacja wykłady
prezentacja wykład parwo bezrobocie 2009 rok
prezentacja wykład VI
terapia pedagogiczna - prezentacja, Wykłady
PRZECIWGRZYBICZE PREZENTACJA WYKŁAD 5
prezentacja wyklad 4
Wykład 8, V rok, Ch Zakaźne, Prezentacje, Wykłady
prezentacja wyklad 9
prezentacja wyklad 10
prezenacja wykład
Prezentacja42 wyklad parwo pieniadz
prezentacja wyklad
prezentacja wykład parwo inflacja2009 rok

więcej podobnych podstron