错误运算符在prolog期望

时间:2014-08-31 14:40:52

标签: prolog

我已编写代码来显示正方形的所有方框位置,例如,如果用户输入4,则方形的大小为4x4,并且必须打印所有位置。我已经为此编写了prolog程序,但我收到运营商预期的错误.... 这是我的代码:

printsqpos(N):- printnum(1,N).

printnum(I,NUM):- I<=NUM,printrow(I,NUM),N1 is I+1,printnum(N1,NUM).

printrow(I,N):- printcell(I,1,N).

printcell(I,J,N):- J<=N,write(I,J),K is J+1,printcell(I,K,N).

我是初学者并且正在练习这件事......请帮帮我

1 个答案:

答案 0 :(得分:2)

错误来源是:..., J <= M, ...代替..., J =< M, ...

在Prolog中写小于或等于=<。起初可能看起来很奇怪。但是经常使用Prolog是为了实现定理证明。在那里,<=被视为从右到左的箭头而不是比较运算符。

但还有更多:Take printnum/2由一个递归规则组成。这意味着这个谓词永远不会成功。它可能会失败或循环。