首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog: Reflect (X,Y) -> (Y,X)

Prolog: Reflect (X,Y) -> (Y,X)
EN

Stack Overflow用户
提问于 2019-08-13 19:00:55
回答 1查看 68关注 0票数 0

除了prolog中的输入之外,我正在尝试生成第二个反射点,而不使用内置函数(即交换等)。

我不确定如何通过定义它们来交换它们,而不会导致无限的递归。

这就是我在这里尝试过的。

代码语言:javascript
复制
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标准)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 19:55:55

You就是这个子句。

代码语言:javascript
复制
reflection(point(X, Y), point(Y, X)).

使用reflection(point(-5, 8), point(X, Y)), writeln(point(X, Y)).进行查询会产生以下结果:

代码语言:javascript
复制
point(8, -5)

X = 8,
Y = -5
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57476377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档