Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: logic 18. 09. 2015, 15:29:07

Název: Termy v Prologu
Přispěvatel: logic 18. 09. 2015, 15:29:07
Otázka víceméně ze zvědavosti: proč se v Prologu používají termy (z formální logiky) a ne nějaká jiná struktura.
A druhá: jak se vyhodnocuje pravidlo vyjadřující symetrii nějakého vztahu, např. sourozenec(X,Y):-sourozenec(Y,X)?
Název: Re:Termy v Prologu
Přispěvatel: zboj 20. 09. 2015, 08:09:31
Otázka víceméně ze zvědavosti: proč se v Prologu používají termy (z formální logiky) a ne nějaká jiná struktura.
A druhá: jak se vyhodnocuje pravidlo vyjadřující symetrii nějakého vztahu, např. sourozenec(X,Y):-sourozenec(Y,X)?

1. Protože se dají efektivně unifikovat. Některé logické jazyky používají unifikaci nad stromy nebo nad AVM (to je nejobecnější). A některé mají jen atomy, například Datalog.

2. SLG rezolucí, ta skončí pro každý "nonfloundering" program. Normální Prolog (s SLD rezolucí) se na tom zacyklí. Podle typu úlohy může být lepší použít RETE nebo ASP, to už ale není Prolog.