Following my previous question, ich bin langsam den Dreh von FParsec (obwohl ich es besonders schwer zu grok finden).Wie man Daten aus F # Liste extrahiert
Mein nächster Neuling F # Frage ist, wie extrahiere ich Daten aus der Liste, die der Parser erstellt?
Zum Beispiel habe ich den Beispielcode aus der vorherigen Frage in ein Modul namens Parser.fs geladen und einen sehr einfachen Komponententest in einem separaten Modul (mit den entsprechenden Referenzen) hinzugefügt. Ich verwende XUnit:
open Xunit
[<Fact>]
let Parse_1_ShouldReturnListContaining1() =
let interim = Parser.parse("1")
Assert.False(List.isEmpty(interim))
let head = interim.Head // I realise that I have only one item in the list this time
Assert.Equal("1", ???)
interaktiv, wenn ich Parse "1" die Reaktion auszuführen ist:
val it : Element list = [Number "1"]
und durch die Liste der gültigen Operatoren zwicken, ich Parse laufen kann " 1 + 1" erhalten:
val it : Element list = [Number "1"; Operator "+"; Number "1"]
Was muss ich anstelle meiner setzen ??? im obigen Ausschnitt? Und wie überprüfe ich, dass es sich um eine Nummer und nicht um einen Operator usw. handelt?