:: m a -> (a -> m b) -> m b.
1) как называется фукнция { (a -> m b) }? Континуация?
2) как называются оба аргумента bind если их рассматривать как одно целое, т.е. { m a, (a -> m b) }?
1) обычно видел слово "продолжение" 2) думаю что никак, bind это имхо несколько adhoc функция для упрощения использования (в то время как опять же имхо основная функция это join :: m (m a) -> m a, где bind получается из композиции map и join), не думаю что кто-то придумывал для них специальные слова
а «продолжение» и «стрелка Лейсли» это синонимы?
продолжение — это вообще из другой оперы. продолжение — это что-то типа роли. когда функция по смыслу выдаёт х на выходе, но фактически принимает другую функцию-продолжение (х -> у) и пихает х в неё
ах да, забыл добавить в определение, что продолжение должно вызываться хвостом
получается cont не про continuation
про них, modulo newtype. только сам Cont — это не продолжение, а продолжаемое вычисление
Обсуждают сегодня