f# - 在 F# 中将 (string * int) [] 写入文本文件

标签 f#

我对 F# 还很陌生,这是我的第一篇文章,所以我希望我能够对我的问题提供充分的描述。 就像标题所说,我需要将 (string * int) [] 函数写入文本文件。我知道 System.IO.File.WriteAllText (string, string),但是有没有办法让我在不先转换为 string 的情况下写入文本文件? 现在我有一种字数统计,它按照统计的单词以及该单词出现的次数进行排序。就像这样:

[|("and", 130); ("he", 128); ("that", 103); ("was", 80); ...|]

文本文件的文件目录可以是我的项目中的 .fsx 文件的位置。

最佳答案

您确实需要以某种方式转换您的数组。这通常是一件好事,因为它迫使您控制文件的格式。当然,您可以使用某种序列化器,但这对于这样一个简单的任务来说可能有点太多了。

我可能会做这样的事情:

open System.IO
let words = [|("and", 130); ("he", 128); ("that", 103); ("was", 80) |]
let lines = words |> Array.map (fun (w, c) -> sprintf "%s;%i" w c)
File.WriteAllLines(__SOURCE_DIRECTORY__ + @"\file.csv", lines)

关于f# - 在 F# 中将 (string * int) [] 写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633609/

相关文章:

visual-studio - F# 程序集中的默认程序集修订号始终为 0

f# - 匹配有区别的联合案例而不是内容

f# - 将每 2 个元素映射到一个函数/构造函数

F# 按类型进行模式匹配

F# 使用 XML Type Provider 修改 xml

f# - WebSharper 入门问题

f# - 禁止在 F# 交互中显示变量的内容

.net - F# 多态性

f# - F#中的打印序列

arrays - 快速将文本数据读入数组