Documentation

Std.Data.Array.Basic

Definitions on Arrays #

This file contains various definitions on Array. It does not contain proofs about these definitions, those are contained in other files in Std.Data.Array.

def Array.reduceOption {α : Type u_1} (l : Array (Option α)) :

Drop nones from a Array, and replace each remaining some a with a.

Equations
def Array.equalSet {α : Type u_1} [BEq α] (xs : Array α) (ys : Array α) :

Check whether xs and ys are equal as sets, i.e. they contain the same elements when disregarding order and duplicates. O(n*m)! If your element type has an Ord instance, it is asymptotically more efficient to sort the two arrays, remove duplicates and then compare them elementwise.

Equations
def Array.qsortOrd {α : Type u_1} [ord : Ord α] (xs : Array α) :

Sort an array using compare to compare elements.

Equations
@[inline]
def Array.minWith {α : Type u_1} [ord : Ord α] (xs : Array α) (d : α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Returns the first minimal element among d and elements of the array. If start and stop are given, only the subarray xs[start:stop] is considered (in addition to d).

Equations
@[inline]
def Array.minD {α : Type u_1} [ord : Ord α] (xs : Array α) (d : α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Find the first minimal element of an array. If the array is empty, d is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[inline]
def Array.min? {α : Type u_1} [ord : Ord α] (xs : Array α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :

Find the first minimal element of an array. If the array is empty, none is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[inline]
def Array.minI {α : Type u_1} [ord : Ord α] [Inhabited α] (xs : Array α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Find the first minimal element of an array. If the array is empty, default is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[inline]
def Array.maxWith {α : Type u_1} [ord : Ord α] (xs : Array α) (d : α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Returns the first maximal element among d and elements of the array. If start and stop are given, only the subarray xs[start:stop] is considered (in addition to d).

Equations
@[inline]
def Array.maxD {α : Type u_1} [ord : Ord α] (xs : Array α) (d : α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Find the first maximal element of an array. If the array is empty, d is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[inline]
def Array.max? {α : Type u_1} [ord : Ord α] (xs : Array α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :

Find the first maximal element of an array. If the array is empty, none is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[inline]
def Array.maxI {α : Type u_1} [ord : Ord α] [Inhabited α] (xs : Array α) (start : optParam Nat 0) (stop : optParam Nat (Array.size xs)) :
α

Find the first maximal element of an array. If the array is empty, default is returned. If start and stop are given, only the subarray xs[start:stop] is considered.

Equations
@[implemented_by _private.Std.Data.Array.Basic.0.Array.attachImpl]
def Array.attach {α : Type u_1} (xs : Array α) :
Array { x : α // x xs }

"Attach" the proof that the elements of xs are in xs to produce a new list with the same elements but in the type {x // x ∈ xs}.

Equations
@[inline]
def Array.join {α : Type u_1} (l : Array (Array α)) :

O(|join L|). join L concatenates all the arrays in L into one array.

  • join #[#[a], #[], #[b, c], #[d, e, f]] = #[a, b, c, d, e, f]
Equations
def Subarray.empty {α : Type u_1} :

The empty subarray.

Equations
Equations
  • Subarray.instEmptyCollectionSubarray = { emptyCollection := Subarray.empty }
Equations
  • Subarray.instInhabitedSubarray = { default := }
@[inline]
def Subarray.isEmpty {α : Type u_1} (as : Subarray α) :

Check whether a subarray is empty.

Equations
@[inline]
def Subarray.contains {α : Type u_1} [BEq α] (as : Subarray α) (a : α) :

Check whether a subarray contains an element.

Equations
def Subarray.popHead? {α : Type u_1} (as : Subarray α) :

Remove the first element of a subarray. Returns the element and the remaining subarray, or none if the subarray is empty.

Equations
  • One or more equations did not get rendered due to their size.