2017-05-02 20 views
0

私は、文字列リストと出力ファイルの名前が与えられたときに呼び出されると、各要素をSMLの出力ファイルに出力するメソッドを記述しようとしています。私はこれを試しましたが、うまくいかないようです。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

具体的にお答えください。それについては何ができませんか? –

答えて

1

コードは機能しますが、すべての文字列をそれらの間にスペースを入れずに連結します。おそらくこれはあなたが望むものではありません。各項目を別々の行に置くには、改行を手動で追加する必要があります。 Windowsでは、あなたが行うことができます:

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^"\r\n"); out(xs')) 
    in 
    out(list) 
    end; 

(LinuxやMacでは、あなただけ"\n"を使用します)。

また、要素間にカンマなどの区切り文字を使用してすべてを1行にする場合は、最初に文字列リストを関数concatWithに入力してから、区切り文字列をテキストに出力することができますファイル。