什么事!prolog中的符号是什么意思?
我真的需要知道这个符号在后面是什么意思,这个符号。。。例如,看看这段代码什么事!prolog中的符号是什么意思?,prolog,prolog-cut,Prolog,Prolog Cut,我真的需要知道这个符号在后面是什么意思,这个符号。。。例如,看看这段代码 glitter(yes) :- agent_location(X, Y), gold(X, Y), ! . 符号表示切口。您可以阅读有关cut的更多信息。 此外,还可以在prolog中找到一个示例。符号表示切口。您可以阅读有关cut的更多信息。 此外,还可以在prolog中找到一个示例。要理解“切割”(!),您需要了解prolog对其代码进行评估时涉及的回溯过程。您可能知道,对于这段代码,Prolog
glitter(yes) :-
agent_location(X, Y),
gold(X, Y),
! .
代码>符号表示切口
。您可以阅读有关cut
的更多信息。
此外,还可以在prolog中找到一个示例。
代码>符号表示切口
。您可以阅读有关cut
的更多信息。
此外,还可以在prolog中找到一个示例。要理解“切割”(!
),您需要了解prolog对其代码进行评估时涉及的回溯过程。您可能知道,对于这段代码,Prolog只知道当X和Y也使用gold(X,Y)
进行验证时,如果agent\u位置(X,Y)
本身得到验证,则使用输入yes
验证规则glitter()
。换句话说,agent\u location
和gold
必须使用相同的参数进行验证
这意味着Prolog将尝试查找X和Y的特定值,以便对所有内容进行验证。它将沿着一条求值路径(求值树)向下,尝试X的一个值,并查看是否可以使用相同的X值继续求值。如果失败(假设Prolog在agent\u位置中尝试了X=0
,但X=0
不验证gold
)它将返回并尝试使用代理位置的另一个规则。这就是“削减”的时候了。如果某件事发生在之后如果代码>失败,Prolog将永远不会检查它是否可以用另一条规则解决剪切之前的所有问题
在本例中,最终,如果该特定的glitter
规则的所有操作都失败,Prolog将尝试另一个规则进行验证。我想您的原始代码为glitter
指定了另一条规则,如果我没有弄错的话,您向我们展示的规则末尾的剪切意味着,如果遵循此规则的规则失败,Prolog将不会返回并检查它是否可以尝试新值来解决glitter(yes)
它通常用于提高计算效率和防止无限循环。要理解“切割”(!
)您需要了解Prolog代码计算中涉及的回溯过程。您可能知道,对于这段代码,Prolog只知道当X和Y也使用gold(X,Y)
进行验证时,如果agent\u位置(X,Y)
本身得到验证,则使用输入yes
验证规则glitter()
。换句话说,agent\u location
和gold
必须使用相同的参数进行验证
这意味着Prolog将尝试查找X和Y的特定值,以便对所有内容进行验证。它将沿着一条求值路径(求值树)向下,尝试X的一个值,并查看是否可以使用相同的X值继续求值。如果失败(假设Prolog在agent\u位置中尝试了X=0
,但X=0
不验证gold
)它将返回并尝试使用代理位置的另一个规则。这就是“削减”的时候了。如果某件事发生在之后如果代码>失败,Prolog将永远不会检查它是否可以用另一条规则解决剪切之前的所有问题
在本例中,最终,如果该特定的glitter
规则的所有操作都失败,Prolog将尝试另一个规则进行验证。我想您的原始代码为glitter
指定了另一条规则,如果我没有弄错的话,您向我们展示的规则末尾的剪切意味着,如果遵循此规则的规则失败,Prolog将不会返回并检查它是否可以尝试新值来解决glitter(yes)
它通常用于提高计算效率和防止无限循环。您应该阅读prolog教程或获得一本好的教科书。这里有很多要解释的。Prolog进行回溯以找到解决方案。这意味着它会根据您给定的事实和规则探索尽可能多的选项,以获得成功。剪切(!
)告诉Prolog不要在该点回溯。有关剪切运算符的解释,请参见例如。当你寻找时,你会很快发现它不容易处理。你应该读一本prolog教程或一本好的教科书。这里有很多要解释的。Prolog进行回溯以找到解决方案。这意味着它会根据您给定的事实和规则探索尽可能多的选项,以获得成功。剪切(!
)告诉Prolog不要在该点回溯。有关剪切运算符的解释,请参见例如。当你寻找答案时,你会很快发现这并不容易处理。仅仅基于链接的答案并不被认为是好的形式。你应该解释切割,然后参考链接了解更多细节。仅仅基于链接的答案不被认为是好的形式。你应该解释切割,然后参考链接了解更多细节。