Input loop: Difference between revisions

m
(Input loop in Rapira)
Line 2,365:
Below will be more scalable:
 
<lang ocaml>let read_lineread_line_opt ic =
try Some (input_line ic)
with End_of_file -> None
Line 2,371:
let read_lines ic =
let rec loop acc =
match read_lineread_line_opt ic with
| Some line -> loop (line :: acc)
| None -> (List.rev acc)
in
loop []
Line 2,382:
<lang ocaml>let read_lines f ic =
let rec loop () =
try f (input_line ic); loop ()
with End_of_file -> ()
in
loop ()
 
let () =
read_lines print_endline (open_in Sys.argv.(1))</lang>
let ic = open_in Sys.argv.(1) in
 
read_lines print_endline (open_in Sys.argv.(1))ic</lang>
This function will apply your_function() to every line of input
<lang ocaml>
let rec input_caller () =
let input = read_line() in
your_function input ;
input_caller() ;
;;
 
let () = input_caller()</lang>
 
=={{header|Oforth}}==