如何在SML中将字符串列表输出到文本文件?

时间:2017-05-02 02:26:54

标签: string list file-io sml smlnj

我正在尝试编写一个方法,在调用时,给定一个字符串列表和输出文件的名称,将每个元素输出到SML中的输出文件。我试过这个,但它似乎没有用。

fun quit(outFile: string, list: string list) =
  let
    val outStream = TextIO.openOut outFile
    fun out(xs : string list) =  
          case xs of
              [] => (TextIO.closeOut outStream)
            | x::xs' => (TextIO.output(outStream, x); out(xs'))
  in
    out(list)
  end

1 个答案:

答案 0 :(得分:1)

您的代码有效,但它将所有字符串连接在一起,它们之间没有空格。大概这不是你想要的。如果您希望每个项目都在一个单独的行上,那么您将不得不手动添加换行符。在Windows上,您可以这样做:

"\n"

(在Linux或Mac上,您只需使用 import subprocess for ping in range(1,10): address = "127.0.0." + str(ping) res = subprocess.call(['ping', '-c', '3', address]) if res == 0: print ("ping to", address, "OK") elif res == 2: print ("no response from", address) else: print ("ping to", address, "failed!") )。

或者,如果您希望所有内容都在一行上,但在元素之间使用逗号(如逗号),则可以先将字符串列表提供给函数concatWith,然后输出单个(分隔的)字符串到文本文件。