@false在评论部分提出了一个关于决定论的有趣挑战。他不仅质疑解决方案和答案之间是否有区别。这个区别可能会影响决定论的概念。还有这里的查询是否:
?- freeze(_,false).
有解决方案吗?由于延迟执行不在原问题的范围内,这个新问题应该提供一个解决术语问题的平台,也是对决定论的后见之明。
这是一个反驳,目标没有解决方案,与@false声称的相反。如果它没有解,那么(+)/1
会把它变成是。但是它没有,它把它变成了no:
?- + freeze(_,false).
false.
这可能是编程错误,有一个延迟的目标不可以满足的。延迟进球应该表达一个"也许"。如果"也许";是总是一个"不",那么延迟的目标就没有任何意义。
(+)/1
的作用是,然后它变成&;maybe &;和";YES"到"NO"one_answers";NO"到"YES"然而,一个遗留的问题是,可能存在多个延迟的目标,这些目标不能作为一个组合来满足。