使用Array.map省略F#中数组的第一个元素

Grz*_*nio 5 f#

我刚开始玩F#,所以这个问题可能很基本......

我想逐行读取文本文件,然后忽略第一行并使用给定函数处理其他行.所以我在考虑使用以下内容:

File.ReadAllLines(path)
|> Array.(ignore first element)
|> Array.map processLine
Run Code Online (Sandbox Code Playgroud)

什么是一种优雅而有效的方法来实现它?

Tom*_*cek 9

跳过数组中的第一行没有简单的函数,因为操作效率不高(它必须复制整个数组),但如果使用延迟序列,则可以轻松完成:

File.ReadAllLines(path) 
|> Seq.skip 1
|> Seq.map processLine
Run Code Online (Sandbox Code Playgroud)

如果您需要数组中的结果(而不是seq<'T>F#别名IEnumerable<'T>),那么您可以添加Seq.toArray到结尾.但是,如果您只是想稍后迭代这些行,那么您可能只是使用序列.