【发布时间】:2016-11-21 01:38:33
【问题描述】:
我做了一个计算向量长度和二维数组大小的函数。
下面是函数。我正在使用 swi-prolog:
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
write("vector len : "), write(COUNT1),
write(", 2D array size : "), write(COUNT2).
是的,我特意排除了详细的listLength, twoDarrayfunction。
但是有两个函数是正确的。所以,COUNT1 变量存储向量长度,COUNT2 变量存储二维数组大小。
另外输入变量LIST 表示向量。二维表是固定的。(7 x 7)。
当我使用输入运行代码时:
?- foo([1, 2, 3, 4, 5]).
它输出:
向量长度:5,二维数组大小:49
但是,当我像下面这样修改上面的代码时,
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
(COUNT1 == COUNT2).
函数未终止。我的目标是比较COUNT1 和COUNT2。如果两个变量相同,则返回true,否则返回false。
但是,即使使用相同的输入,它也无法正常工作。
这是什么原因造成的,我该如何解决?
【问题讨论】:
标签: prolog