私はF#で作業し始めています。典型的なidomsと効果的な考え方と作業方法を理解しようとしています。F#でのファイル変換
タスクは、カンマ区切りのタブ区切りファイルへの単純な変換です。 )私は、単一Regex.Replace(とオペレーションの分割/連結のペアを交換し
// inFile and outFile defined in preceding code not shown here
for line in File.ReadLines(inFile) do
let typicalArray = line.Split '\t'
let transformedLine = typicalArray |> String.concat ","
outFile.WriteLine(transformedLine)
:私はこのようなコードをループで始まっ
let line = "@ES# 01/31/2006 13:31:00 1303.00 1303.00 1302.00 1302.00 2514 0"
:典型的な入力行は次のようになります。
for line in File.ReadLines(inFile) do
let transformedLine = Regex.Replace(line, "\t",",")
outFile.WriteLine(transformedLine)
そして今、最終的には、パイプラインでループ交換した:
File.ReadLines(inFile)
|> Seq.map (fun x -> Regex.Replace(x, "\t", ","))
|> Seq.iter (fun y -> outFile.WriteLine(y))
// other housekeeping code below here not shown
すべてのバージョンが動作しますが、最終バージョンは私にとっては最も直感的です。これは、経験豊富なF#プログラマーがこのタスクをどのように達成するのでしょうか?
私はあなたと同じ方法でやるでしょう –
3番目のバージョンの最後の行に匿名関数を残して、これを実行します: '|> Seq.iter outFile.WriteLine' –
これは非常に素晴らしいことです。 **振り返ってみると、明らかに単純化されている。ありがとう! – akucheck