Арсений
Ментальная связь сквозь нации, сквозь страны
Combot
combot.org/chat/-1001043143583
Nikolay
Если у меня функция ассоциативная то есть ли разница между foldl и foldr
Nikolay
?
Арсений
Да, разница в работе на бесконечных последовательностях
Nikolay
А в чем эта разница? Foldl вроде тоже не завершится как и foldr
Nikolay
Наверное foldr всю памчть скушает?
undefined
Наоборот, foldr не начнет ничего делать, пока не понадобится результат
Nikolay
В если понадобится, то будет столько же памяти использованной как и с foldl?
Антон
В если понадобится, то будет столько же памяти использованной как и с foldl?
Зависит от операции. foldl может быть преобразована в цикл и за счёт ленивости использовать постоянное количество памяти, но если не форсировать вычисление thunk-а, то он может всю память сожрать. Канонический пример: -- Падает со stack overflow main = print $ foldl (+) 0 [1..10000000] -- Нормально работает и печатает результат main = print $ foldl' (+) 0 [1..10000000]
Alexander
важна строгость, нестрогость функции
Nikolay
А что такое строгость?
Alexander
когда вычисляется агрумент
Alexander
если функция ленивая по второму агрументу то с foldr возможен short-circuiting
Alexander
т.е. она может работать с бесконеычным списком
Alexander
https://en.wikibooks.org/wiki/Haskell/Laziness
Nikolay
А вот print $ foldr (+) 0 [1..10000000] тоже рванет?
Alexander
про ленивость ^
Alexander
for some definition of рванет
Alexander
при вычислении будет юзаться стек
Alexander
http://www.well-typed.com/blog/90/
Alexander
вот хороший материал по теме
Alexander
хм.. щас у них ещё хороший материал был
Alexander
ну и https://wiki.haskell.org/Foldr_Foldl_Foldl'
Anonymous
кстати как scope по русски, контекст?
Варианты перевода "in scope": Видна, обозрима, доступна
Alexander
это-то понятно
Ilya
разбавлю англоязычные материалы про свёртки неплохой русскоязычной статьей на ibm
Ilya
https://www.ibm.com/developerworks/ru/library/l-haskell4/
Alexander
да, там уже это обсудили
Alexander
-(
Alexander
=)
Andrey
Но лучше таки Altium, конечно.
Вечная проблема - ради разовой простой задачи не хочется ставить могучий тяжелый софт. Но я не ошибся в предчувствиях - последнее время много чего, что раньше было локально-десктопным, появилось в виде бесплатных онлайн-сервисов.
Anonymous
.. а если такой софт ставится безболезненно? Например, JDK - наверное, считается тяжёлым. Ставится легко.
Andrey
ну JDK нужен если на джаве или ее хостинцах разрабатываешь, без него никуда. а опычному юзеру JRE более чем достаточно
Andrey
и не знаю как на убунте или маке, но у меня с винды привычка, что деинсталлируется не всегда корректно
Anonymous
Винда чистая к сожалению только при установке. Как впрочем и линукс, если ставить что-нибудь из сырцов. Про мак не знаю.
Anonymous
Ради разовой простой задачи JDK / JRE ставить не лень. Скорее всего, пригодится ещё для чего-нибудь 😝
Alexander
Винда чистая к сожалению только при установке. Как впрочем и линукс, если ставить что-нибудь из сырцов. Про мак не знаю.
в генте можно достаточно быстро ставить из любых с сырцов с возможностью откатить
Alexander
но если приложение хранит какие-то данные в домашней папке пользователя то не прокатывает
Alexander
думаю, в debian-based это не сильно сложнее, хотя я не знаю как там идет сборка из src-пакетов
Alexander
собственно, есть и универсальный рецепт: ставить в префикс, и добавлять бинарники в PATH вручную
Alexander
потом всего 2 операции - удалить префикс и удалить пути ввнутри этого префикса из PATH
Alexander
гента делает примерно то же самое, но после установки в префикс перемещает файлы в корень (с проверкой на конфликты) и записывает какие именно
Alexander
точнее записываешь ты вручную через find в префиксе и засносишь в ебилд
Alexander
хотя может и вру
Anonymous
Похоже на ручную работу, не? Легко ошибиться, забыть.
Alexander
Сборка из исходников действительно похожа на ручную работу
Alexander
Если там обычный configure make make install, то работа сводится к 4 срокам в файле, двум командам в консоли, копипасте, и последней коианде в консоли
Alexander
Можно и скрипт написать, а скорее всего он даже уже есть
Alexander
В дебиане вроде был такой
Anonymous
Т.е., чтобы вернуть чистую ось, проще установить её заново, не?
Alexander
Ну если самоцель это чистая ос то да
Alexander
А если хочется откатить конкретный пакет то определённо нет
Anatolii
Узнал что Кложа умеет хот код релоад! Пока не узнал зачем оно нужно
Alexander
Тем более что пакеты из сырых исходников ставятся раз в год, если речь идёт о линуксах вроде генты, потому что кто первый пишет скрипт тот его и шарит на все комьюнити
Anatolii
Ещё нашел что в хаскеле с костылями тоже можно
Alexander
Узнал что Кложа умеет хот код релоад! Пока не узнал зачем оно нужно
Должно быть удобно при разработке под веб, быстрый релоад это круто
Alexander
Запуск жирного монолита может быть медленным
Alexander
В проде скорее не нужно
Anatolii
Ну выглядит как фича ради фичи
Anatolii
Там же никакого отката при падении точно нет
Anatolii
Ну пусть она нужна в 0.01 % случаев
Anatolii
Но не больше
Aliester
а зачем в реланге хотрелоад?
Aliester
ерланге
Alexander
В rails все используют хот релоад, но там просто загрузка очень долгая
Aliester
и вообще, вы что, никогда на динамическом языке не писали?
Anatolii
Да я не думаю что в Эрланген его кто-то юзает
Aliester
поправил файлик - ф5 и все видно
Aliester
не знаю как вы без этого живете
Anatolii
Я никогда не писал чего-то что HTML отдает
Anatolii
Может поэтому оно мне не надо?
Alexander
наверно да
Alexander
html json не особо большая разница
Anatolii
И это у меня взгляд с другой стороны
Anatolii
Я не дёргаю жсоны смотреть
Anatolii
Вернее если дёргаю - то на какой-то удаленный сервер