gpt4 book ai didi

prolog - 在 Prolog 中使用具有不同/不存在的事实的 OR 运算符

转载 作者:行者123 更新时间:2023-12-01 23:04:40 28 4
gpt4 key购买 nike

我有一个事实:

loves(romeo, juliet).

那么我有一个“或”规则:

dances(juliet) :- loves(romeo, juliet).
dances(juliet) :- dancer(juliet).

如您所见,舞者事实不存在,但这应该没问题,并且 dances(juliet) 应该让我回归真实。相反,它返回我为真,然后抛出一个关于舞者事实的存在异常。 有没有办法为不存在的事实或规则编写规则?我需要检查事实是否存在吗?

最佳答案

要实现“如果不存在则失败”,您可以使用指令 dynamic/1 声明您的谓词 dynamic

例如:

:- dynamic dancer/1.

如果您将此指令添加到您的程序中,您会得到:

?- dances(X).X = juliet .

没有错误。

关于prolog - 在 Prolog 中使用具有不同/不存在的事实的 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44101059/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com