AK
for_ игнорирует результат и выполняет эффекты:for_ = flip traverse_
traverse_
:: forall a b f m
. Applicative m
=> Foldable f
=> (a -> m b)
-> f a
-> m Unit
traverse_ = foldr ((*>) <<< f) (pure unit)
то есть по сути
for_ это:foldr ((*>) <<< (\item -> f item)) (pure unit) array
Пытаюсь через это вывести свой
forIndexed_ используя foldrWithIndex вместо foldr, но очевидно теряю apply и не знаю как его вставить правильно:forIndexed_
:: forall i f a m
. FoldableWithIndex i f => Applicative m
=> f a -> (i -> a -> m Unit) -> m Unit
forIndexed_ array f =
foldrWithIndex (\idx elm _ -> f idx elm) (pure unit) array
такой код компилится, но выполняется даже для массивов с несколькими элементами только один раз

