我做了一個計算矢量長度和二維數組大小的函數。Prolog'=='運算符不工作?
以下是功能。我使用SWI-Prolog的:
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
write("vector len : "), write(COUNT1),
write(", 2D array size : "), write(COUNT2).
是的,我特意排除詳細listLength, twoDarray
功能。
但是兩個函數是正確的。所以,COUNT1
變量存儲矢量長度和COUNT2
變量存儲二維數組大小。
另外輸入變量LIST
表示向量。二維表是固定的(7乘7)。
當我運行與輸入的代碼:
- FOO([1,2,3,4,5])。
它輸出:
矢量LEN:5,2D陣列尺寸:49
但是,當我改性上述像下面的代碼,
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
(COUNT1 == COUNT2).
功能沒有終止。我的目標是比較COUNT1
和COUNT2
。如果兩個變量相同,則返回true
,否則返回false
。
但是,即使輸入相同,它也無法正常工作。
是什麼原因造成的,我怎麼能解決這個問題?