A vágó használata: elkötelezés adott klóz mellett, a vágás alapszabálya
A VIK Wikiből
(PrologElm13 szócikkből átirányítva)
Ez az oldal a korábbi SCH wikiről lett áthozva.
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: 4.1.3 P3 példa
- fóliák: II.18-21
A klóz mellett való elkötelezés általában egyszerű feltételes szerkezetet jelent. szülő :- ha, akkor. szülő :- \+ ha, egyébként Ez az alak logikailag tiszta, de nem hatékony. Ha ha egyszerű, nincs benne választás, a következő alakkal ekvivalens: szülő :- ha, ! akkor. szülő :- egyébként A vágás alapszabálya: a kimenő paraméterek értékadása elé kell a vágót tenni. Így
- csak akkor helyettesíti be a kimenő paramétert, ha tudja, hogy mi az értéke
- hatékonyabb és általánosabb a program:
% a vágó előtt adunk értéket: max(X, Y, X) :- X >= Y, !. max(X, Y, Y) :- X < Y.
Ezzel akkor van baj, ha ellenőrzésre használjuk:
max(2, 1, 1) yes
Ha a vágó után adunk értéket a kimenő paraméternek:
max(X, Y, M) :- X >= Y, !, M = X. max(X, Y, Y).
Akkor mindkét irányban jól működik.