我是一名学习F#的学生,目前正在尝试将列表输出到通过聚类算法从分析中创建的文件。我想我已经接近了,但是我从第二个elem处收到了错误消息:“类型'int列表'与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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句