开发者

return values from file - ocaml

I am trying to read a file and return the element read from the file as an input to another function.

How can I return a value when I am reading from the file?? I tried everything I am aware of and am still hopelessly lost.

My code is as follows:

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 = ()

My file contains a string which is a code needed as input for another function.

Please help. I am not sure where I am going wrong.

Thank you.


If multiple expressions are sequenced together using ; the value of the whole expression is the value of the last expression in the sequence.

So if you have something like ((x ^ line) :: l); close_in ic the value of that expression is the value of close_in ic, which is ().

Obviously that's not what you want. In order to make ((x ^ line) :: l) the result of the whole expression, you should place it after close_in ic.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜