Listák jelölése, nyílt és zárt végű listák

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 20:09-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm7}} * fejezetek: 3.3 bevezető, 3.3.1, 3.4 * fóliák: I.113-118 Lista: speciális rekordszerkezet. Igen fontos, ezért külön jel…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


  • fejezetek: 3.3 bevezető, 3.3.1, 3.4
  • fóliák: I.113-118

Lista: speciális rekordszerkezet. Igen fontos, ezért külön jelölésrendszere van. Üres lista: []. A lista általános jelölése: [Fej|Farok], ahol Fej és Farok tetszőleges Prolog objektumok lehetnek. Valódi lista: [A||[B||[C[]]]]], vagyis a farok üres lista. Ez is csak szintaktikus édesítőszer, a lista általános alapstruktúra alakja: .(A1, .(A2,….(An, [])…))


Érdemes odafigyelni arra az "apróságra", miszerint [a,b] = .(a,.(b,[])), míg [a|b] = .(a,b). Nyílt végűnek nevezünk egy listamintát, ami bármilyen hosszú listára illeszthető, és zárt végű a listaminta, ha pontosan egyféle hosszú listára illeszthető.
Pl.: [X], [X,Y] zárt végű, X, [X|Y] nyílt végű. ([X,Y] pontosan két elemű, [XY] legalább egy elemű.)

  • [X] alapstruktúra alakja: .(X,[]);

[X,Y] alapstruktúra alakja: .(X, .(Y,[]));
[X|Y] pedig .(X,Y);
Látható, hogy az első kettő le van zárva, míg az utolsónál Y-ból még bármi kisülhet.