file - F# 将列表输出到文件

标签 file list io f#

我是一名学习 F# 的学生,目前正在尝试将列表输出到通过聚类算法分析创建的文件中。我想我已经很接近了,但我从第二个 elem 收到错误消息:“类型‘int list’与任何类型 byte,int16,int32,int64,sbyte,uint16,uint32,uint64,nativeint, unativeint,由于使用 printf 样式格式字符串而产生”这是我的代码:

let printNumbersToFile fileName =
   use file = System.IO.File.CreateText(fileName)
   clusteredIds
   |> List.iter (fun elem -> fprintf file "%d " elem)
   fprintfn file ""
printNumbersToFile "C:\Users\Jessica\Desktop\CTU Stuff\Dissertation\Programs For Dissertation\Fsharp\DensityClustering\Test.csv"

任何帮助将不胜感激。预先感谢您。

最佳答案

什么是clusteredIds?我的猜测是,它是一个列表列表(其中嵌套列表代表您想要生成的 CSV 的列)?

如果clusteredIds只是一个数字列表,那么您的代码就可以工作(然后您将拥有将它们写入以空格分隔的文件的代码)。如果你想编写嵌套列表,那么你需要有两个嵌套迭代。也许是这样的:

clusteredIds
|> List.iter (fun nested -> 
    nested |> List.iter (fun elem -> fprintf file "%d " elem)
    fprintf file "\n")

或者使用 for 循环和 String.concat 生成一行,其中数字以逗号分隔(但末尾没有额外的逗号)可能会更容易:

for nested in clusteredIds do
  fprintf file "%s" (String.concat "," (Seq.map string nested))

关于file - F# 将列表输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648678/

相关文章:

java - 大 pdf 文件 OutOfMemoryError

C++ 使用 cout << 避免换行

关于文本日志文件的 C# 最佳实践

linux - 为什么在删除关联的 *.py 文件时删除 *.pyc 文件

c# - 从各种 List<衍生类 <T>> 创建 List<genericBaseClass<T>>

Jquery:如何根据事件从其他列表设置文本框的值?

java - System.out 关闭了吗?我可以重新打开它吗?

r - 在 R 的工作目录中生成子文件夹的路径字符串

c++ - C++ 中的 fseek 函数会刷新缓冲区中的数据吗?

python - 生成列表的所有有序组合,其中每个组合包括所有项目