除了prolog中的输入之外,我正在尝试生成第二个反射点,而不使用内置函数(即交换等)。
我不确定如何通过定义它们来交换它们,而不会导致无限的递归。
这就是我在这里尝试过的。
reflection(X,Y) :- point(X,Y),point(Y,X).
point(X,Y).校正:反射(点(1,2),点(2,1)。
但它不会正确回答:
反射(point(-5,8),point(X,Y)),writeln(point(X,Y))...
Expect(8,-5),返回随机(~)大整数(prolog标准)
发布于 2019-08-13 19:55:55
You就是这个子句。
reflection(point(X, Y), point(Y, X)).使用reflection(point(-5, 8), point(X, Y)), writeln(point(X, Y)).进行查询会产生以下结果:
point(8, -5)
X = 8,
Y = -5https://stackoverflow.com/questions/57476377
复制相似问题