diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2014-05-13 22:44:50 +0200 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2014-05-13 22:44:50 +0200 |
commit | acfa0090d68a21be6c83815f484142b4eb814f4a (patch) | |
tree | 49af13f0153ebffb94c63ac98ceb0bd054e7db7b /src/primes.ml | |
parent | c6313368d3719e507eba4216a4fc4ea9f30db576 (diff) | |
download | SystemeReseaux-Projet-acfa0090d68a21be6c83815f484142b4eb814f4a.tar.gz SystemeReseaux-Projet-acfa0090d68a21be6c83815f484142b4eb814f4a.zip |
Change interface, update some stuff, new example...
Diffstat (limited to 'src/primes.ml')
-rw-r--r-- | src/primes.ml | 20 |
1 files changed, 12 insertions, 8 deletions
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 |