Есть ли какая-нибудь замена итерационной функции Prelude в классной прелюдии?

В стандартной прелюдии:

Prelude> :t iterate
iterate :: (a -> a) -> a -> [a]

Тем не менее, в классической прелюдии нет итерации, поэтому я предполагаю, что может быть какая-то более общая функция для выполнения того же самого, возможно, монадическая. Я просто не могу понять, что это такое. Есть один?

1 ответ

Вы всегда можете переопределить это с ClassyPrelude.repeat а также Data.List.scanl:

iterate = \f a -> scanl (\a f -> f a) a (repeat f)
Другие вопросы по тегам