Module CCListLabels.Infix

val (>|=) : 'a CCList.t -> ('a -> 'b) -> 'b CCList.t

l >|= f is the infix version of map with reversed arguments.

val (@) : 'a CCList.t -> 'a CCList.t -> 'a CCList.t

l1 @ l2 concatenates two lists l1 and l2. As append.

val (<*>) : ('a -> 'b) CCList.t -> 'a CCList.t -> 'b CCList.t

funs <*> l is product (fun f x -> f x) funs l.

val (<$>) : ('a -> 'b) -> 'a CCList.t -> 'b CCList.t

f <$> l is like map.

val (>>=) : 'a CCList.t -> ('a -> 'b CCList.t) -> 'b CCList.t

l >>= f is flat_map f l.

val (--) : int -> int -> int CCList.t

i -- j is the infix alias for range. Bounds included.

val (--^) : int -> int -> int CCList.t

i --^ j is the infix alias for range'. Second bound j excluded.

  • since 0.17
val (let+) : 'a CCList.t -> ('a -> 'b) -> 'b CCList.t
val (and+) : 'a CCList.t -> 'b CCList.t -> ('a * 'b) CCList.t
val (let*) : 'a CCList.t -> ('a -> 'b CCList.t) -> 'b CCList.t
val (and*) : 'a CCList.t -> 'b CCList.t -> ('a * 'b) CCList.t
val (and&) : 'a list -> 'b list -> ('a * 'b) list

(and&) is combine_shortest. It allows to perform a synchronized product between two lists, stopping gently at the shortest. Usable both with let+ and let*.

    # let f xs ys zs =
        let+ x = xs
        and& y = ys
        and& z = zs in
        x + y + z;;
    val f : int list -> int list -> int list -> int list = <fun>
    # f [1;2] [5;6;7] [10;10];;
    - : int list = [16; 18]
  • since 3.1