Этот тип StreamTransformer
определен следующим образом:
newtype StreamTransformer input output = StreamTransformer
{ runStreamTransformer :: input -> (output, StreamTransformer input output)
}
Следующая функция, которая выглядит как сканирование / складывание, кажется очень полезной
scan :: (a -> b -> b) -> b -> StreamTransformer a b
scan op init = StreamTransformer $ \i -> (init, scan op (i `op` init))
Есть ли имя для этого scan
? Может ли это быть выражено / понято как некий катаморфизм / анаморфизм?