Array #
Prove basic results about Array.scanl, Array.scanr, Array.scanlM and Array.scanrM.
theorem
Array.scanlM_eq_scanlM_toList
{m : Type u_1 → Type u_2}
{β : Type u_1}
{α : Type u_3}
{init : β}
[Monad m]
[LawfulMonad m]
{f : β → α → m β}
{as : Array α}
:
@[simp]
theorem
Array.toList_scanlM
{m : Type u_1 → Type u_2}
{β : Type u_1}
{α : Type u_3}
{init : β}
[Monad m]
[LawfulMonad m]
{f : β → α → m β}
{as : Array α}
:
theorem
Array.scanrM_eq_scanrM_toList
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_1}
{init : β}
[Monad m]
[LawfulMonad m]
{f : α → β → m β}
{as : Array α}
:
@[simp]
theorem
Array.toList_scanrM
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_1}
{init : β}
[Monad m]
[LawfulMonad m]
{f : α → β → m β}
{as : Array α}
:
theorem
Array.scanl_eq_scanl_toList
{β : Type u_1}
{α : Type u_2}
{init : β}
{f : β → α → β}
{as : Array α}
:
@[simp]
theorem
Array.toList_scanl
{β : Type u_1}
{α : Type u_2}
{init : β}
{f : β → α → β}
{as : Array α}
:
Array.scanr #
theorem
Array.scanr_eq_scanr_toList
{α : Type u_1}
{β : Type u_2}
{init : β}
{f : α → β → β}
{as : Array α}
:
@[simp]
theorem
Array.toList_scanr
{α : Type u_1}
{β : Type u_2}
{init : β}
{f : α → β → β}
{as : Array α}
:
theorem
List.toArray_scanlM
{m : Type u_1 → Type u_2}
{β : Type u_1}
{α : Type u_3}
{init : β}
[Monad m]
[LawfulMonad m]
{f : β → α → m β}
{as : List α}
:
theorem
List.toArray_scanrM
{m : Type u_1 → Type u_2}
{α : Type u_3}
{β : Type u_1}
{init : β}
[Monad m]
[LawfulMonad m]
{f : α → β → m β}
{as : List α}
: