Я сделал функцию, которая вычисляет длину вектора и размер 2D-матрицы.Оператор 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
переменная хранит размер 2D-массива.
Также вводимая переменная LIST
означает вектор. 2-мерная таблица фиксирована (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
.
Однако он не работает даже с одним и тем же входом.
Что является причиной этого, и как я могу это исправить?