There are two ways to think of this type:
- As an 
Arrayof values with anRBMapkey-value index for the keyα. - As an 
RBMapthat preserves insertion order, but is optimized for iteration-by-values. Thus, it does not store the order of keys. 
- toRBMap : Lean.RBMap α β cmp
 - toArray : Array β
 
Instances For
Equations
- Lake.RBArray.empty = { toRBMap := Lean.RBMap.empty, toArray := #[] }
 
Instances For
instance
Lake.RBArray.instEmptyCollection
{α : Type u_1}
{β : Type u_2}
{cmp : α → α → Ordering}
 :
EmptyCollection (RBArray α β cmp)
Equations
- Lake.RBArray.instEmptyCollection = { emptyCollection := Lake.RBArray.empty }
 
def
Lake.RBArray.mkEmpty
{α : Type u_1}
{β : Type u_2}
{cmp : α → α → Ordering}
(size : Nat)
 :
RBArray α β cmp
Equations
- Lake.RBArray.mkEmpty size = { toRBMap := Lean.RBMap.empty, toArray := Array.mkEmpty size }
 
Instances For
@[inline]
def
Lake.RBArray.all
{β : Type u_1}
{α : Type u_2}
{cmp : α → α → Ordering}
(f : β → Bool)
(self : RBArray α β cmp)
 :
Equations
- Lake.RBArray.all f self = self.toArray.all f
 
Instances For
@[inline]
def
Lake.RBArray.any
{β : Type u_1}
{α : Type u_2}
{cmp : α → α → Ordering}
(f : β → Bool)
(self : RBArray α β cmp)
 :
Equations
- Lake.RBArray.any f self = self.toArray.any f
 
Instances For
@[inline]
def
Lake.RBArray.foldl
{σ : Type u_1}
{β : Type u_2}
{α : Type u_3}
{cmp : α → α → Ordering}
(f : σ → β → σ)
(init : σ)
(self : RBArray α β cmp)
 :
σ
Equations
- Lake.RBArray.foldl f init self = Array.foldl f init self.toArray
 
Instances For
@[inline]
def
Lake.RBArray.foldlM
{m : Type u_1 → Type u_2}
{σ : Type u_1}
{β : Type u_3}
{α : Type u_4}
{cmp : α → α → Ordering}
[Monad m]
(f : σ → β → m σ)
(init : σ)
(self : RBArray α β cmp)
 :
m σ
Equations
- Lake.RBArray.foldlM f init self = Array.foldlM f init self.toArray
 
Instances For
@[inline]
def
Lake.RBArray.foldr
{β : Type u_1}
{σ : Type u_2}
{α : Type u_3}
{cmp : α → α → Ordering}
(f : β → σ → σ)
(init : σ)
(self : RBArray α β cmp)
 :
σ
Equations
- Lake.RBArray.foldr f init self = Array.foldr f init self.toArray
 
Instances For
@[inline]
def
Lake.RBArray.foldrM
{m : Type u_1 → Type u_2}
{β : Type u_3}
{σ : Type u_1}
{α : Type u_4}
{cmp : α → α → Ordering}
[Monad m]
(f : β → σ → m σ)
(init : σ)
(self : RBArray α β cmp)
 :
m σ
Equations
- Lake.RBArray.foldrM f init self = Array.foldrM f init self.toArray
 
Instances For
@[inline]
def
Lake.RBArray.forM
{m : Type u_1 → Type u_2}
{β : Type u_3}
{α : Type u_4}
{cmp : α → α → Ordering}
[Monad m]
(f : β → m PUnit)
(self : RBArray α β cmp)
 :
m PUnit
Equations
- Lake.RBArray.forM f self = Array.forM f self.toArray
 
Instances For
instance
Lake.RBArray.instForIn
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_4}
{cmp : α → α → Ordering}
 :
Equations
- Lake.RBArray.instForIn = { forIn := fun {β_1 : Type ?u.37} [Monad m] => Lake.RBArray.forIn }
 
@[inline]
def
Lake.mkRBArray
{β : Type u_1}
{α : Type u_2}
{cmp : α → α → Ordering}
(f : β → α)
(vs : Array β)
 :
RBArray α β cmp
Equations
- Lake.mkRBArray f vs = Array.foldl (fun (m : Lake.RBArray α β cmp) (v : β) => m.insert (f v) v) (Lake.RBArray.mkEmpty vs.size) vs