【发布时间】:2017-01-10 17:11:41
【问题描述】:
为什么下面的read_rest_of_csv 需要括号?
let read_rest_of_csv() =
csv_data.Add(csv_fileH.ReadFields()) |> ignore
not csv_fileH.EndOfData
while read_rest_of_csv() do ignore None
没有括号,循环不会终止。
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
抱歉,我不记得我在哪里看到的了。我认为它在SO中。这是一个很好的例子。
这可能是因为没有括号我正在处理某种函数对象吗?
我确实不仅来自 C、C++ 和 C# 背景,而且还具有中级 Clojure 背景。在我使用 F# 语法的情况下,更详细地阅读我的 Haskell 手册可能会有所帮助,因为语法看起来很相似。
【问题讨论】:
标签: f# functional-programming let