OCaml boolescher Ausdruck [[]] == [[]]

8

Ich habe eine Funktion, die [[]] zurückgibt, und ich möchte das Ergebnis als Komponententest testen. Aber ich fand, dass der Ausdruck [[]] == [[]] return false . Hier ein einfacher Testcode:

%Vor%

Kann mir jemand erklären, warum dieser Ausdruck als falsch gewertet wird?

Danke.

    
Atikae 04.04.2012, 10:36
quelle

2 Antworten

13

Verwenden Sie = , da Sie strukturelle Gleichheit für den Vergleich zweier Werte haben:

%Vor%

Da == Referenzgleichheit ist, wird nur true zurückgegeben, wenn Sie auf denselben Speicherort verweisen:

%Vor%     
pad 04.04.2012, 11:26
quelle
9

Der Operator == in OCaml bedeutet "physische Gleichheit". Sie haben jedoch zwei (physikalisch) unterschiedliche Listen. Wahrscheinlich möchten Sie "strukturelle Gleichheit", die von = getestet wird.

    
Matthias 04.04.2012 10:57
quelle

Tags und Links