"Кооперативной Многозадочности (с) Википедия" может являться инструментом для выруливания вложенных контекстов?
Есть контексты монад в Arrow, внутри которых такая проблема решается с помощью функции .bind() и оно действительно сделано на основе корутин, если верить ребятам (https://github.com/arrow-kt/arrow/blob/master/modules/core/arrow-typeclasses/src/main/kotlin/arrow/typeclasses/Monad.kt)
Но сами по себе корутины никак не могут являться вещью, суть которой - просто удобная синтаксическая плюшка (писать одноуровневый код вместо цепочки map/flatMap)
Корутины - синтксический сахар для cps - явной передачи континуации. do comp - сахар для монад, одной из которых является Cont монада, описывающая cps
https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/the-mother-of-all-monads
Обсуждают сегодня