Ich versuche nur, meinen Kopf um ein paar F # zu wickeln und ich habe ein Problem.Versucht, CSV-Daten in f zu validieren #
Ich habe eine CSV-Datei, die
CorrelationId,TagNumber,Description,CreationDate,UpdateDate,Discipline
8D3F96F3-938F-4599-BCA1-66B13199A39A,Test 70-2,Test tag - Ignore,2016-04-05 14:55:23.503,2016-04-05 14:55:23.503,Mechanical
A9FD4B9D-F7A1-4B7D-917F-D633EA0321E3,test-4,A test tag 24,2016-03-23 15:09:54.667,2016-03-30 17:35:29.553,Civil
wie
aussieht Und ich bin es bei der Verwendung des Typ-Provider CSV Lesenopen FSharp.Data
type Tag = CsvProvider<"tags.csv">
let readTags (path:string) =
let tags = Tag.Load(path)
printfn "%i" (tags.Rows |> Seq.length)
let tag = tags.Rows |> Seq.head
Dann würde ich die Zeilen validieren möchten so nahm ich ein Tipp von der fsharpforfunandprofit bahnorientierten Programmierung.
Aber ich bekomme ein Problem in den Validierungsmethoden, die ich brauche, um die Funktionen mit einem Typ zu kommentieren. Ich habe keine Ahnung, um welchen Typ ich diese annotieren soll. Ich habe versucht, mit dem Erstellen eine neue Art und Mapping, um es
type tagType = { TagNumber: string; Description: string}
spielen, die diese Funktionen gemacht kompilieren richtig, aber ich trat das Problem nur auf der Straße, weil ich jetzt nicht sicher bin, wie von dem Tag.Row zur Karte zu TagTyp. Im Idealfall würde ich diese Validierung durchführen, ohne Mapping durchführen zu müssen.
Wie sollte das alles aussehen?
Sie könnten einige Tricks mit Inline-Funktionen machen, die methodenbasierte Einschränkungen zulassen. –