iterate + forever = iterateM? Повторение действия с обратной связью

Я пытаюсь бесконечно повторять действие ввода-вывода, но передаю результат одного выполнения другому. Что-то вроде этого:

-- poorly named
iterateM :: Monad m => (a -> m a) -> a -> m b
iterateM f a = f a >>= iterateM f

Hoogle, похоже, мне не помог, но я вижу множество функций, которые выглядят заманчиво близкими к тому, что я хочу, но ни одна из них, похоже, не соответствует тому, что мне нужно.

7
задан Ashe 29 May 2012 в 14:19
поделиться