Alexander
@zraffer я не понимаю, тебя честно
Alexander
ты сидишь считаешь себя на 100% справедливым
Anonymous
@zraffer я не понимаю, тебя честно
он пишет это ради реакции
Alexander
и вечно пишешь про не переубедить и не слушать
Alexander
давай так
Alexander
я сейчас тебе кидаю статью
Alexander
ты приводишь контр агрументы
Alexander
и после этого продолжаем
Alexander
какую-нить древню wadler
Anonymous
а скажите пожалуйста, почему большинство остальных языков продолжает пользоваться eager, и не спешит пользоваться хаскелльными открытиями?
Alexander
потому, что реализация хорошей ленивости это сложная задача, например?
Евгений
Потому что буржуазное общество ультраконсервативно и не может без насилия принимать революционные изменения :)
Alexander
потому, что для ленивого языка нужно сразу реализовывать половину экосистемы?
Alexander
потому, что людей учат на бейсиках?
Alexander
хотя во всяких FRP и подобном подходы приходят в 99% языков
Alexander
ну и потому, что агрумент про миллионы мух странный?
Anonymous
если "хорошей" подразумевает оптимизацию при постонном ее использовании везде в языке, то да. Если же нужно, грубо говоря, реализовать один тип Stream, то он есть сейчас в большинстве языков, даже в таких "ограниченных", как Агда.
Евгений
В агде граф-редукция по умолчанию вообще-то
Anonymous
В агде граф-редукция по умолчанию вообще-то
просто потому, что она компилится в Х-ль! (по умолчанию)
Евгений
Сори что разбил иллюзии, придётся тебе выкинуть агду
Alexander
так чтобы использование ленивости не приводило к 2+х просаживанию производительности
Alexander
как в 99% языках
Евгений
Нет, потому что невозможно встроить коиндукцию в язык с зависимыми типами, если редукция не ленивая
Евгений
А вовсе не из-за хаскеля
Anonymous
Потому что буржуазное общество ультраконсервативно и не может без насилия принимать революционные изменения :)
ой, я сразу пропустил этот пост. это сложный вопрос, без поллитры не разобраться. ;)
Alexander
@iamweasel давай без картинок плз
Alexander
и так чят тяжело читать
Anonymous
Нет, потому что невозможно встроить коиндукцию в язык с зависимыми типами, если редукция не ленивая
это переупрощение. в Идрисе прекрасно существует коиндукция. при том, что нет дефолтной ленивости. тут ключевое слово "дефолтная".
Alexander
там нету ленивости
Alexander
есть некое подобие, которое не работает
A64m
я видел в сети не один диалог про это, поэтому предлагаю не углубляться. хаскеллистов не переубедить, у них стокгольмский синдром. ленивость их взяла в заложники и они ее полюбили.
почему только стокгольмский синдром у хаскелистов, если на хаскеле пишут только добровольно и для удовольствия а не у всяких строкоджавистов, которые на строгих языках пишут чтоб с голоду не умереть?
Alexander
и работает как call-by-name, а не call-by-need
Alexander
@A64m_qb0 я для денег пишу :( ну и для удовольствия конечно
Anonymous
и работает как call-by-name, а не call-by-need
кстати, не проверял, как там сейчас реализовано. но если нету настоящей ленивости, то позор.
Alexander
последний раз когда я сталкивался с идрисом я забил на ленивость вообще
Anonymous
но позор не Идрису как языку, а его текущей реализации.
Alexander
и имел радостный сложный код, частенько ещё и квадратичный вместо линейного
Alexander
но это было 1.0 (за месяц)
Alexander
у меня ещё тогда он impossible случай выводил, где не impossible
Alexander
и ещё какой-то баг в прувере был
Alexander
последние 2 правда перед релизом поправили
Alexander
в общем интересный язык для type-level вещей
Anonymous
если Вы помните, то я предлагал не углубляться. поскольку вопрос для хаскеллеводов слишком религиозный.
Alexander
где в haskell реально страдаешь, и 50% людей точно эти страдания легко не повторят
Alexander
@zraffer он не религиозный, тут вроде опять пишут агрументы, агрумент против был - почему 99% eager
Alexander
и то, что память сложно посчитать
кана
тут есть тема поважнее, кто сможет этот мемчик объяснить?
кана
кана
ааааа
Anonymous
@zraffer он не религиозный, тут вроде опять пишут агрументы, агрумент против был - почему 99% eager
не просто трудно посчитать, но легко выстрелить себе в ногу. нет, можно привыкнуть так жить постоянно и пользоваться такими паттернами, что в нормальном языке они будут приводить в квадратичной сложности, но это обратная сторона медали. меня другое волнует, не успел сказать.
Alexander
ааааа
отсылка к gc которые марлоу писал и их не включили
A64m
эти паттерны называются "функциональное программирование"
Alexander
@zraffer я попытался в идрисе написать many1 однажды для парсера
A64m
понятно, что если ФП не интересно, то "нормальные языки" вполне годятся
Alexander
я потратил на это 4+ часа
Alexander
количество граблей, которые я собрал было большим
Alexander
ну это про то, что ожидаешь и не ожидаешь ленивости
Alexander
и строгости
Anonymous
реаливовывать обычные вычисления поверх ленивых не просто трудно. тот вопрос с формализацией категории Hask тормозится в том числе из-за seq. Грубо говоря, достаточно просто реализовать семантику функтора Lazy в неленивом языке. а как сделать наоборот - никто не знает.
A64m
также очень смешно что любители строгих ФП называют выстреливанием в ногу то, что делают, к примеру, почти все списковые функции из стандартных библиотек этих языков, т.е. манифестацию полной копии обрабатываемой структуры в памяти одновременно
Alexander
а давайте устроим paper we love и вспомним, the essence of functional programming, вот хорошая статья чтобы поговорить про ленивость
Anonymous
Вы молитесь на авторитеты? я умолкаю.
A64m
не разу ни от одного не слышал, чтоб он свой строгий мап мемори ликом называл, потому что лики только в хаскеле!
Alexander
Вы молитесь на авторитеты? я умолкаю.
нет, мы не молимся на миллионы мух
Anonymous
а стоп.
Alexander
> Грубо говоря, достаточно просто реализовать семантику функтора Lazy в неленивом языке. про это было
Anonymous
Вы про что?
Alexander
вот нету ни одного примера эффективной реализации Lazy в неленивом языке
A64m
"достаточно просто реализовать семантику функтора Lazy в неленивом языке"
A64m
да и эффективность половина беды только
A64m
надо же еще и аннотировать везде
Anonymous
> Грубо говоря, достаточно просто реализовать семантику функтора Lazy в неленивом языке. про это было
речь про семантику, как Вы видели, а не про компилятор. теория доменов описывает исходну категорию (допустим, множеств, но можн и типов) и категорию "лифтнутых" доменов. Последняя алгебраична над первой, т.е. там пара сопряженных функторов. Комонада этого сопряжения подходит под описание Lazy.
Alexander
про сообщение с seq и проблемами с формализацией я наверное даже соглашусь