English
Definition of a monadic variant of a left fold with index: foldlIdxM takes a monadic function f, a base value b, and a list as, and folds from the left while threading monadic effects with index information.
Русский
Определение монадического варианта левого свертки с индексом: foldlIdxM принимает монадическую функцию f, базовое значение b и список as и сворачивает слева, проряживая монадические эффекты с учётом индекса.
LaTeX
$$$\\mathrm{foldlIdxM}(f,b,\\mathrm{as}) = \\mathrm{as}.\\mathrm{foldlIdx}\\bigl(\\lambda i\\, ma\\, b . \\; \\text{продолжение}\\, \\bigr)\\; (\\mathrm{pure}\\, b)$$$
Lean4
/-- Monadic variant of `foldlIdx`. -/
def foldlIdxM {α β} (f : ℕ → β → α → m β) (b : β) (as : List α) : m β :=
as.foldlIdx
(fun i ma b => do
let a ← ma
f i a b)
(pure b)