@[specialize #[]]
def
Nat.foldM.loop
{α : Type u}
{m : Type u → Type v}
[Monad m]
(n : Nat)
(f : (i : Nat) → i < n → α → m α)
(i : Nat)
:
i ≤ n → α → m α
Equations
- Nat.foldM.loop n f 0 h x = pure x
- Nat.foldM.loop n f i.succ h x = f (n - i - 1) ⋯ x >>= Nat.foldM.loop n f i ⋯
Instances For
@[specialize #[]]
def
Nat.foldRevM.loop
{α : Type u}
{m : Type u → Type v}
[Monad m]
(n : Nat)
(f : (i : Nat) → i < n → α → m α)
(i : Nat)
:
i ≤ n → α → m α
Equations
- Nat.foldRevM.loop n f 0 h x = pure x
- Nat.foldRevM.loop n f i.succ h x = f i ⋯ x >>= Nat.foldRevM.loop n f i ⋯