From acfa0090d68a21be6c83815f484142b4eb814f4a Mon Sep 17 00:00:00 2001 From: Alex AUVOLAT Date: Tue, 13 May 2014 22:44:50 +0200 Subject: Change interface, update some stuff, new example... --- src/primes.ml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/primes.ml') diff --git a/src/primes.ml b/src/primes.ml index 924f7d3..11f5387 100644 --- a/src/primes.ml +++ b/src/primes.ml @@ -23,20 +23,24 @@ module Primes (K : Kahn.S) = struct in loop() let rec primes (qi : int in_port) : unit process = - (get qi) >>= (fun v -> - if v <> -1 then begin - io_write ((string_of_int v)^"\n"); - (delay new_channel ()) >>= - (fun (qi2, qo2) -> doco [ filter v qi qo2 ; primes qi2 ]) - end else return ()) + bind_io + (get qi) + (fun v -> + if v <> -1 then + begin + Format.printf "%d@." v; + (delay new_channel ()) >>= + (fun (qi2, qo2) -> doco [ filter v qi qo2 ; primes qi2 ]) + end + else return ()) let main : unit process = (delay new_channel ()) >>= - (fun (q_in, q_out) -> doco [ integers 2000 q_out ; primes q_in ]) + (fun (q_in, q_out) -> doco [ integers 1000 q_out ; primes q_in ]) end -module Eng = Kahn.Seq +module Eng = Kahn_pipe.Pipe module P = Primes(Eng) let () = P.K.run P.main -- cgit v1.2.3