War es hilfreich?

Lösung

F # Typen (einschließlich Listen) implementieren strukturelle Gleichheit. Dies bedeutet, dass, wenn Sie zwei Listen vergleichen, die einige F # -Typen mit = enthalten, wird es wahr zurück, wenn die Typen die gleiche Länge und enthalten Elemente mit den gleichen Eigenschaften aufweisen.

Unter der Annahme, dass der Element Typ eine diskriminierte Vereinigung in F # definiert ist (und ist keine Objekt-Typ), sollten Sie in der Lage sein, nur zu schreiben:

Assert.Equal(interim, [Number "1"; Operator "+"; Number "1"])

Wenn Sie die Gleichheit selbst implementieren wollen, dann könnten Sie Musterabgleich verwenden;

let expected = [Number "1"]
match interim, expected with
| Number a, Number b when a = b -> true
| _ -> false
scroll top