Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 619 Bytes

File metadata and controls

24 lines (20 loc) · 619 Bytes

Stream.map3 : ('a -> 'b -> 'c -> 'd) -> 'a Stream.t -> 'b Stream.t -> 'c Stream.t -> 'd Stream.t

let stream_a = Stream.Async.of_list ~delay:5000 [2; 4]
let stream_b = Stream.Async.of_array ~delay:4000 [|1; 3|]
let stream_c = Stream.Async.of_list ~delay:2000 [0]
let stream = Stream.map3 (fun a b c -> a + b + c) stream_a stream_b stream_c
let unsubscribe = stream
  |> Stream.subscribe (fun x -> x |> string_of_int |> print_endline)

let _ = print_endline "pass"

(*
  > "pass"
  > 3
  > 5
  > 7

  stream_a: ____2____4_____.
  stream_b: __1__3___.
  stream_c: _0__.
  output:   ____3__5_7_____.
*)