package transept

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file iterator.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module Make (Stream : Transept_specs.STREAM) = struct
  type 'a t = 'a Stream.t

  let fold_right fSome s fNone =
    let rec iterate s r =
      match Stream.next s with
      | None, _ -> r
      | Some a, s -> fSome a @@ iterate s r
    in
    iterate s fNone

  let fold_left fSome fNone s =
    let rec iterate r s =
      match Stream.next s with
      | None, _ -> r
      | Some a, s -> iterate (fSome r a) s
    in
    iterate fNone s
end
OCaml

Innovation. Community. Security.