Prolog中的奇怪运算符(!)

5 operators prolog prolog-cut

hi(g,plus(A,B),int) :- hi(g,A,int),hi(g,B,int),!.  
Run Code Online (Sandbox Code Playgroud)

在上面的陈述中有什么'!' 在声明结尾处签字吗?

Fre*_*Foo 9

这是削减操作员,基本上说"如果我们到达这里,不要回溯."

因此,如果两个递归调用都成功,hi谓词将不会重试它们.