summaryrefslogtreecommitdiff
path: root/src/primes.ml
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2014-05-13 22:44:50 +0200
committerAlex AUVOLAT <alex.auvolat@ens.fr>2014-05-13 22:44:50 +0200
commitacfa0090d68a21be6c83815f484142b4eb814f4a (patch)
tree49af13f0153ebffb94c63ac98ceb0bd054e7db7b /src/primes.ml
parentc6313368d3719e507eba4216a4fc4ea9f30db576 (diff)
downloadSystemeReseaux-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.ml20
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