Ich machte eine Funktion, die Vektorlänge und 2D-Array-Größe berechnet.Prolog '==' Operator funktioniert nicht?
Unten ist die Funktion. Ich verwende swi-prolog:
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
write("vector len : "), write(COUNT1),
write(", 2D array size : "), write(COUNT2).
Ja, ich absichtlich detaillierte listLength, twoDarray
Funktion ausschließen.
Allerdings sind zwei Funktionen korrekt. So, COUNT1
Variable speichert Vektor Länge und COUNT2
Variable speichert 2D-Array-Größe.
Auch Eingabevariable LIST
bedeutet Vektor. 2-dimensionale Tabelle ist festgelegt. (7 x 7).
Wenn ich laufe, den Code mit dem Eingang:
- foo ([1, 2, 3, 4, 5]).
es Ausgänge:
Vektor len: 5, 2D-Array-Größe: 49
Aber, wenn ich oben Code wie nachstehend modifiziert,
foo(LIST) :- listLength(LIST, COUNT1), twoDarray(COUNT2),
(COUNT1 == COUNT2).
Funktion ist nicht beendet. Mein Ziel ist vergleichen und COUNT2
. Wenn zwei Variablen identisch sind, wird true
zurückgegeben, andernfalls wird false
zurückgegeben.
Allerdings funktioniert es nicht mit dem gleichen Eingang.
Was ist der Grund dafür, und wie kann ich es beheben?