目前试图让我的头脑切入prolog。我正在阅读LPN书并通过实例进行处理。
剪辑的一个例子是:
max(X,Y,Z) :- X =< Y, !, Y = Z.
max(X,Y,X).
我很困惑为什么max(2,3,2)
通过匹配第二条规则而无法返回true。尝试将Y与Z统一后,它失败了第一条规则,因为3 /= 2
。但在第二条规则X = 2
和Y = 3
中,它应匹配。我觉得自己错过了切割工作的方法,并且一直坐在这里绘制搜索树,试图弄清楚究竟发生了什么,但都无济于事。
如果有人能为我解释为什么max(2,3,2)
无效,那会很棒。感谢。