Dinaminis sąrašo formavimas Spausdinti
( 0 Votes )
Parašė Aurimas Šimkus   

Yra bent trys būdai, kurių pagalba galima dinamiškai (programos vykdymo metu) formuoti Prolog sąrašus.

1. Tradicinis sąrašo formavimo būdas, kai formuojamas naujas sąrašas.

Pavyzdys:

naujas(A, Naujas) :- Naujas = [naujas_elementas, A].

Užklausos pavyzdys:

naujas([a, b], Naujas).
Naujas = [labas, [a, b]].

2. Naujo sąrašo formavimas, kai elementai sudedami į vieną naują sąrašą.

Pavyzdys:

naujas(A, Naujas) :- Naujas = [naujas_elementas | A].

Užklausos pavyzdys:

naujas([a, b], Naujas).
Naujas = [labas, a, b].

Pastebėkite, kad pirmuoju atveju naujajame sąraše sudėti sąrašai yra atskiri, o antruoju - jų elementai talpinami viename sąraše.

3. Naujo sąrašo formavimas, naudojant integruotąjį Prolog predikatą append. Tradiciniu atveju, šis predikatas turi tris parametrus: pirmieji du - jungiamieji sąrašai, trečiasis - naujojo sąrašo kintamasis.

Užklausų pavyzdžiai:

append([a,b], [1,2,3], Naujas).
- Naujas = [a, b, 1, 2, 3].
append([a,b], [1,2], [a,b,1,2]).
- true.
append([a,b], [1,2], [1,2,a,b]).
- false.

 

Čia pateikti tik tradiciniai sąrašų formavimo pavyzdžiai. Dažnai sąrašai formuojami naudojant rekursiją, pvz., kai norima į sąrašą talpinti tik neigiamus skaičius arba juos talpinti spiacialia tvarka.