Странный оператор (!) В прологе - PullRequest
5 голосов
/ 05 мая 2011
hi(g,plus(A,B),int) :- hi(g,A,int),hi(g,B,int),!.  

в приведенном выше утверждении, что означает "!" подписать в конце заявления сделать?

1 Ответ

8 голосов
/ 05 мая 2011

Это оператор cut , который в основном гласит: «если мы добрались до этого, не возвращайтесь назад».

Так что, если оба рекурсивных вызова завершатся успешно, предикат hiне буду повторять их.

...