теоркат, получалось что-то применить в проектировании/программировании "обычных" приложений на Haskell?
Я вот только лемму Йонеды разве что к продолжениям смог присобачить. Точнее, понять, как это можно использовать.
я только слышал, как оптимизируют скорость с помощью кодировки Чёрча (или Скотта?), хотя это не теоркат
Фигасе, а где можно посмотреть??
https://hackage.haskell.org/package/parsec-3.1.15.0/docs/src/Text.Parsec.Prim.html#ParsecT обоснование не нагуглил
Ну это стандартная тема для монадок. В аттопарсеке так же. Нужно чтобы не накапливать неправильно ассоциированные бинды.
@toroboque вы понимаете это объяснение? я с трудом
как с dlist, только вместо ++ тут >>=
то же самое https://hackage.haskell.org/package/kan-extensions-5.2.3/docs/Control-Monad-Codensity.html
"Gosh, you're an endofunctor, behave like one!"
Ну да, отсутствие накопления неправильно ассоциированных биндов гораздо проще понять, если осознать, что это всего лишь правое канское расширение профунктора p вдоль самого себя.
Не, всё ещё не понятно :) Если есть время, разжуйте, плз. Интересно.
вот тут ридми прочитай https://hackage.haskell.org/package/dlist
Не волнуйся, я просто перевёл описание одной либы с коденсити
Так что я ещё нормальный, да
Мне кстати интересно насколько CPS реально полезен для парсеров. Реассоциация байндов безусловно важна для всяких free/conduit, там это в некоторых случаях действительно дает асимптотическое ускорение, но у парсеров-то нет явной глубокой вложенности, так что интересно, насколько cps для них полезен? Из других плюсов у cps отсутствие необходимости кейса по результату и, возможно, какие-то оптимизации для трансформера без конкретной монады, но зато наверное больше аллокаций для замыканий
trifecta сделана через псевдопродолжения, например
А что в этом контексте значит "псевдо"?
Они как бы продолжения, но у настоящих продолжений тип a -> Bottom, потому что возврата не происходит
А, ну это понятно, просто кмк за отсутствием настоящих в хаскеле их так обычно не называют
даже если там монадок нет, то всё равно парсеры, будучи автоматами на разные лады, хорошо ложатся на CPS сами по себе, вроде как
Обсуждают сегодня