package reason-standard

  1. Overview
  2. Docs

Functions for working with boolean values.

Booleans in OCaml / Reason are represented by the true and false literals.

Whilst a bool isnt a variant, you will get warnings if you haven't exhaustively pattern match on them:

let bool = false
let string = 
  match bool with
  | false -> "false"        
(* 
  Warning 8: this pattern-matching is not exhaustive.
  Here is an example of a case that is not matched:
  true
*)

Functions for working with boolean (true or false) values.

type t = bool

Create

val ofInt : int -> bool option

Convert an Int into a Bool.

Examples

Bool.ofInt 0 = Some false
Bool.ofInt 1 = Some true
Bool.ofInt 8 = None
Bool.ofInt (-3) = None
val ofString : string -> bool option

Convert a String into a Bool.

Examples

Bool.ofString "true" = Some true
Bool.ofString "false" = Some false
Bool.ofString "True" = None
Bool.ofString "False" = None
Bool.ofString "0" = None
Bool.ofString "1" = None
Bool.ofString "Not even close" = None

Basic operations

val (&&) : bool -> bool -> bool

The lazy logical AND operator.

Returns true if both of its operands evaluate to true.

If the 'left' operand evaluates to false, the 'right' operand is not evaluated.

Examples

Bool.(true && true) = true
Bool.(true && false) = false
Bool.(false && true) = false
Bool.(false && false) = false
val (||) : bool -> bool -> bool

The lazy logical OR operator.

Returns true if one of its operands evaluates to true.

If the 'left' operand evaluates to true, the 'right' operand is not evaluated.

Examples

Bool.(true || true) = true
Bool.(true || false) = true
Bool.(false || true) = true
Bool.(false || false) = false
val xor : bool -> bool -> bool

The exclusive or operator.

Returns true if exactly one of its operands is true.

Examples

Bool.xor true true  = false
Bool.xor true false = true
Bool.xor false true  = true
Bool.xor false false = false
val not : t -> bool

Negate a bool.

Examples

Bool.not false = true
Bool.not true = false
val negate : ('a -> bool) -> 'a -> bool

Negate a function.

This can be useful in combination with List.filter / Array.filter or List.find / Array.find

Examples

let isLessThanTwelve = Bool.negate (fun n -> n >= 12) in
isLessThanTwelve 12 = false

Convert

val toString : bool -> string

Convert a bool to a String

Examples

Bool.toString true = "true"
Bool.toString false = "false"
val toInt : bool -> int

Convert a bool to an Int.

Examples

Bool.toInt true = 1
Bool.toInt false = 0

Compare

val equal : bool -> bool -> bool

Test for the equality of two bool values.

Examples

Bool.equal true true = true
Bool.equal false false = true
Bool.equal false true = false
val compare : bool -> bool -> int

Compare two boolean values

Examples

Bool.compare true false = 1
Bool.compare false true = -1
Bool.compare true true = 0
Bool.compare false false = 0