【发布时间】:2013-05-14 16:03:16
【问题描述】:
Prolog 一直对我说 'no'.... :(
我是非常 prolog 新手,我有一个基本问题:
所以我试图生成一个简单的规则来检查三个数字是否构成直角三角形的边长,如下所示:
addup(X,Y,Z) :- X is Y+Z. /* this works*/
pythag(H,A,B) :- (H*H) is (A*A) + (B*B). /*this doesn't work*/
对于测试,“加法”规则似乎确实有效.... 我认为我的程序中“IS”的左侧存在问题,因为以下测试似乎表明了这一点:
在交互模式下,我可以判断 2 是否是 1 和 1 的和,它说是:
| ?- 2 is 1+1.
yes
但是如果我切换左右手边;它说不:
| ?- 1+1 is 2.
no
有人可以提供上述 pythag 规则的正确版本吗? 版本信息如下:
GNU Prolog 1.3.0
By Daniel Diaz
Copyright (C) 1999-2007 Daniel Diaz
| ?-
【问题讨论】:
标签: math prolog pythagorean