List 创建程序读取文件并反向打印,如何删除所有新行引号?
我有一个程序,如果我键入“tac Text.txt”(或引号中的任何文件路径,但这是我制作/使用的测试文本文件),它将打印List 创建程序读取文件并反向打印,如何删除所有新行引号?,list,f#,List,F#,我有一个程序,如果我键入“tac Text.txt”(或引号中的任何文件路径,但这是我制作/使用的测试文本文件),它将打印txt文件中的内容,但打印顺序相反。但它不能正常工作。应该显示为 No it is not. Yes-it is. No it is not. Hello my name is Jim. 它似乎是 ["No it is not."; ""; ""; "Yes-it is."; "No it is not."; "Hello my name is Jim
txt
文件中的内容,但打印顺序相反。但它不能正常工作。应该显示为
No it is not.
Yes-it is.
No it is not.
Hello my name is Jim.
它似乎是
["No it is not."; ""; ""; "Yes-it is."; "No it is not."; "Hello my
name is Jim."].
我的代码目前是
open System
open System.IO
let countLines path =
File.ReadAllLines(path) |> Seq.toList|> List.rev
// File.ReadAllLines reads the file, turns it into a list then reverses the list.
let printFunction lines =
printfn "%A" lines
// This, when called, will print the file in reverse.
let tac path =
if File.Exists(path) then
let lines = countLines path
printFunction lines
else
printfn "File not found."
[<EntryPoint>]
let main argv =
if argv.Length > 0 then
tac argv.[0]
else
printfn "Error - Please enter file path."
0
到
同样的事情也会发生,但我希望它能让我更接近我想要的结果。它会写出你的整个数据类型,这是一个
字符串列表
您需要遍历列表:
let printFunction lines =
for line in lines do printfn "%s" line
单独打印一个数组、列表或一系列行:
let printFunction = Seq.iter (printfn "%s")
同样值得一看Asti的答案,并找出它为什么有效。这是部分函数应用程序如何在F#中工作的一个很好的例子。
let printFunction lines =
for line in lines do printfn "%s" line
let printFunction = Seq.iter (printfn "%s")