Autor Zpráva
lenka frýdlová
Profil *
Ahoj,
už jsem tu dostala pár rad ohledně semestrálky k html a nevím kam jinam se pořádně obrátit.

Neumí tu někdo základy jazyka Prolog?

Potřebuju nakopnout s úplně jednoduchým problémem.

Našla jsem pdf s vysvětlením...

prvek(X,[X|_]). % X je prvkem seznamu, je-li jeho hlavou
prvek(X,[_|T]):- prvek(X,T). % X je prvkem seznamu, je-li prvkem jeho těla

První řádek chápu, anonymní proměnná. Vrátí true když najde X a pak cokoliv.
Ale jak probíhá myšlenkový pochod u řádku druhého?

díky moc
Nox
Profil
Nemáte školní forum? Tam by to asi bylo lepší řešit

druhý řádek znamená:

pokud jde první argument nahradit X a druhý argument je pole s nějakým tělem (2+ prvků), _ na začátku odstraní první prvek, který už byl zkontrolovaný v prvním pravidlu
a zbytek pošle do další iterace

příklad

prvek(4, [1 2 3 4]);

prvek(3, [1|_]) -> false
prvek(3, [_|2 3 4]) -> prvek(3, [2 3 4])

prvek(3, [2|_]) -> false
prvek(3, [_|3 4]) -> prvek(3, [3 4])

prvek(3, [3|_) -> true
lenka frýdlová
Profil *
díky moc

jsem dálkařka, takže nemám moc možností se s někým poradit...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0