2010-11-29 5 views
4

私はファイルを読み込み、別の関数への入力としてファイルから読み込む要素を返すようにしようとしています。の戻り値 - ocamlの

ファイルから読み込んだときに値を返すにはどうすればよいですか? 私は、私が気づいているすべてを試して、まだ絶望的に失われています。次のように

私のコードは次のとおりです。

let file = "code.txt";; 

let oc = open_out file in (* create or truncate file, return channel *) 

    fprintf oc "%s\n" (play); (* write code to file returned from calling (play) function *) 

    close_out oc ;; 


(*read from file*) 


let read l= 

    let f x = 

     let ic = open_in file in 

     let line = input_line ic in (* read line from in_channel and discard \n *) 

      print_endline line;   (* write the result to stdout *) 

       ((x^line) :: l); 

      flush stdout;     

      close_in ic ; 
    in 
    f l 
    ;; 

prompt: read;; function call outputs: 

- : unit =() 

私のファイルは、別の関数の入力として必要なコードである文字列が含まれています。

助けてください。私はどこに間違っているのか分からない。

ありがとうございます。複数の式は;式全体の値を使用して一緒に配列決定される場合

答えて

4

は、シーケンスの最後の式の値です。

だから、((x^line) :: l); close_in icのようなものがある場合、その式の値はの値であり、これは()です。

明らかに、それはあなたが望むものではありません。 ((x^line) :: l)を式全体の結果にするには、close_in icの後に置きます。

+0

ありがとうございます!私はとても完全に失われた!ありがとう:) – JJunior