Strange operator (!) in Prolog
-
29-10-2019 - |
Question
hi(g,plus(A,B),int) :- hi(g,A,int),hi(g,B,int),!.
in the above statement what does the '!' sign at the end of the statement do ?
Solution
That's the cut operator, which basically states "if we got up to here, don't backtrack."
So, if both recursive calls succeed, the hi
predicate will not retry them.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow