Я только начинаю работать с F # и пытаюсь понять типичные иконы и эффективные способы мышления и работы.
Задача под рукой - простое преобразование файла с разделителями табуляции в раздел, разделенный запятой. Типичная строка ввода будет выглядеть так:
let line = "@ES#    01/31/2006 13:31:00 1303.00 1303.00 1302.00 1302.00 2514    0"
Я начал с кода цикла таким образом:
// 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)
Затем я заменил партию split/concat с одним Regex.Replace():
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 # выполнил бы эту задачу?
