Warum sind unter read_rest_of_csv
Klammern erforderlich?Warum sind Klammern für diese F # -Funktion erforderlich?
let read_rest_of_csv() =
csv_data.Add(csv_fileH.ReadFields()) |> ignore
not csv_fileH.EndOfData
while read_rest_of_csv() do ignore None
Ohne die Klammern wird die Schleife nicht beendet.
open System
open System.Threading
open System.Collections.Generic
open System.Linq
open System.Text
open System.Threading.Tasks
open System.IO
open Microsoft.VisualBasic.FileIO
[<EntryPoint>]
let main argv =
let csv_fileH = new TextFieldParser("test1.csv")
csv_fileH.TextFieldType = FieldType.Delimited |> ignore
let x = csv_fileH.SetDelimiters(",")
let csv_data = new List<string[]>()
let eod = csv_fileH.EndOfData
if not eod then
let column_headings = csv_fileH.ReadFields()
csv_data.Add(column_headings) |> ignore
let read_rest_of_csv =
csv_data.Add(csv_fileH.ReadFields()) |> ignore
not csv_fileH.EndOfData
while read_rest_of_csv do ignore None
0
Ich entschuldige mich, dass ich mich nicht erinnern kann, wo ich das gesehen habe. Ich denke, es war in SO. Es ist ein schönes Beispiel.
Könnte das sein, dass ich ohne Parens ein Funktionsobjekt habe?
Ich komme in der Tat nicht nur von einem C, C++ und C# Hintergrund, sondern auch eine Zwischen Clojure Hintergrund. In meinem Fall mit der F # -Syntax könnte das Lesen meines Haskell-Handbuchs etwas mehr hilfreich gewesen sein, weil die Syntax ähnlich aussieht.
Sie haben einen guten Punkt über die Programmierung der Menschen auf F # gemacht. Also fügte ich dem OP noch etwas hinzu, um meinen Hintergrund anzuzeigen. Der Teil, an den ich mich gewöhnen muss, sind Dinge wie unit,() und diese Bindungen. – octopusgrabbus