package hack_parallel

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

Source file hack_container.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let fold_count fold t ~f = fold t ~init:0 ~f:(fun n a -> if f a then n + 1 else n)

let fold_sum (type a) (module M : Hack_commutative_group.S with type t = a) fold t ~f =
  fold t ~init:M.zero ~f:(fun n a -> M.(+) n (f a))
;;

let fold_min fold t ~cmp =
  fold t ~init:None ~f:(fun acc elt ->
      match acc with
      | None -> Some elt
      | Some min -> if cmp min elt > 0 then Some elt else acc)
;;

let fold_max fold t ~cmp =
  fold t ~init:None ~f:(fun acc elt ->
      match acc with
      | None -> Some elt
      | Some max -> if cmp max elt < 0 then Some elt else acc)
;;
OCaml

Innovation. Community. Security.