Documentation

Init.Data.Array.BasicAux

theorem Array.of_push_eq_push {α : Type u_1} {a b : α} {as bs : Array α} (h : as.push a = bs.push b) :
as = bs a = b
theorem List.toArray_eq_toArray_eq {α : Type u_1} {as bs : List α} :
(as.toArray = bs.toArray) = (as = bs)
def Array.mapM' {m : Type u_1 → Type u_2} {α : Type u_3} {β : Type u_1} [Monad m] (f : αm β) (as : Array α) :
m { bs : Array β // bs.size = as.size }

Applies the monadic action f to every element in the array, left-to-right, and returns the array of results. Furthermore, the resulting array's type guarantees that it contains the same number of elements as the input array.

Equations
@[irreducible]
def Array.mapM'.go {m : Type u_1 → Type u_2} {α : Type u_3} {β : Type u_1} [Monad m] (f : αm β) (as : Array α) (i : Nat) (acc : { bs : Array β // bs.size = i }) (hle : i as.size) :
m { bs : Array β // bs.size = as.size }
Equations
@[implemented_by _private.Init.Data.Array.BasicAux.0.mapMonoMImp]
def Array.mapMonoM {m : Type u_1 → Type u_2} {α : Type u_1} [Monad m] (as : Array α) (f : αm α) :
m (Array α)

Applies a monadic function to each element of an array, returning the array of results. The function is monomorphic: it is required to return a value of the same type. The internal implementation uses pointer equality, and does not allocate a new array if the result of each function call is pointer-equal to its argument.

Equations
@[inline]
def Array.mapMono {α : Type u_1} (as : Array α) (f : αα) :

Applies a function to each element of an array, returning the array of results. The function is monomorphic: it is required to return a value of the same type. The internal implementation uses pointer equality, and does not allocate a new array if the result of each function call is pointer-equal to its argument.

Equations