множество элементов, как Source из Akka или Observable из Monix?
Можно что-нибудь накостылить в духе: def f: IO[IO[Int]] = IO { val arr = Array(1,2,3,4,5) var i = -1 IO.delay { i += 1 arr(i) } }
Comonad? Но я ненастоящий сварщик
Source, Observable и fs2.Stream слишком comprehensive. Конкретно в качестве абстракций используются разные кусочки типа Foldable, Traverse, вот про FunctorFilter @catostrophe писал, в отлельных случаях и Applicative, Monad/Comonad Полноценной абстракции над разносортными коллекциями ты вряд ли получишь
Обсуждают сегодня