Adding CCList.tail_opt

This commit is contained in:
nathan moreau 2018-01-26 09:25:17 +01:00
parent 2007d7ad37
commit b0d92f44ea
3 changed files with 15 additions and 0 deletions

View file

@ -855,6 +855,10 @@ let head_opt = function
| [] -> None | [] -> None
| x::_ -> Some x | x::_ -> Some x
let tail_opt = function
| [] -> None
| _ :: tail -> Some tail
let rec last_opt = function let rec last_opt = function
| [] -> None | [] -> None
| [x] -> Some x | [x] -> Some x
@ -864,6 +868,9 @@ let rec last_opt = function
(Some 1) (head_opt [1;2;3]) (Some 1) (head_opt [1;2;3])
(Some 1) (head_opt [1]) (Some 1) (head_opt [1])
None (head_opt []) None (head_opt [])
(Some [2;3]) (tail_opt [1;2;3])
(Some []) (tail_opt [1])
None (tail_opt [])
(Some 3) (last_opt [1;2;3]) (Some 3) (last_opt [1;2;3])
(Some 1) (last_opt [1]) (Some 1) (last_opt [1])
None (last_opt []) None (last_opt [])

View file

@ -249,6 +249,10 @@ val head_opt : 'a t -> 'a option
(** First element. (** First element.
@since 0.20 *) @since 0.20 *)
val tail_opt : 'a t -> 'a t option
(** Return the given list without its first element.
@since NEXT_RELEASE *)
val last_opt : 'a t -> 'a option val last_opt : 'a t -> 'a option
(** Last element. (** Last element.
@since 0.20 *) @since 0.20 *)

View file

@ -159,6 +159,10 @@ val head_opt : 'a t -> 'a option
(** First element. (** First element.
@since 0.20 *) @since 0.20 *)
val tail_opt : 'a t -> 'a t option
(** Return the given list without its first element.
@since NEXT_RELEASE *)
val last_opt : 'a t -> 'a option val last_opt : 'a t -> 'a option
(** Last element. (** Last element.
@since 0.20 *) @since 0.20 *)