下記のread_rest_of_csv
にカッコが必要なのはなぜですか?F#関数でカッコが必要なのはなぜですか?
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
私はこれを見たところ、私は覚えていないことをお詫び申し上げます。私はそうだったと思う。それは良い例です。
これは括弧なしで、私は関数オブジェクトを扱っていますか?
私は確かにC、C++、C#のバックグラウンドだけでなく、中間的なClojureバックグラウンドも持っています。私の場合、F#の構文では、構文が似ているように見えるので、少し詳細に私のHaskellのマニュアルを読むのが助けになるかもしれません。
あなたはF#に来る人々のプログラミングの背景に関する良い点を作った。だから、自分の背景を示すためにOPにいくつか追加しました。私が使用しなければならない部分は、ユニット、()、それらのバインディングのようなものです。 – octopusgrabbus