Size: a a a

Elm Lang сообщество разработчиков

2021 January 04

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
А есть список всех граблей в энергичной процедурщине?
Ну список основных наверное можно навскидку составить)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Ну так и в хаскеле тоже самое.
"Делаешь свёртку в ленивом языке — подумай, должен ли результат быть ленивой структурой. Если нет — используй энергичную свёртку".
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
То же касается структур данных. Скажем, в двоичном дереве значения чаще всего должны лежать в энергичных полях, а поддеревья — в ленивых.
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Denis Krivosheev
Ну список основных наверное можно навскидку составить)
У двух топовых даже названия есть: нулл поинтер эксепшн и стэк оверфлоу
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
data Tree a = Leaf | Node !a (Tree a) (Tree a)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"!" говорит, что это энергичное поле
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
То же касается структур данных. Скажем, в двоичном дереве значения чаще всего должны лежать в энергичных полях, а поддеревья — в ленивых.
А посему значение энергичное? С учетом того что по идее большая часть значений лежит в листьях может и можно их ленивыми оставить
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Энергичность значений нужна, чтобы при (+1) в дереве лежало число, а не thunk
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
А вот ленивость в ссылках на поддеревья поможет лениво дерево обходить
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
То же касается структур данных. Скажем, в двоичном дереве значения чаще всего должны лежать в энергичных полях, а поддеревья — в ленивых.
Это rule of thumb, можно сказать:
- lazy for control flow
- strict for data
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Просто разумное умолчание.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Впрочем, для "контейнеров" может быть полезно быть ленивыми во всём. Потому что "вызывающая сторона" сможет решить, какие свойства нужны (при апдейте значения в ноде дерева можно зафорсить его вычисление, если нужно)

Это для records типа User или CartItem ленивость не нужна практически никогда, поэтому лучше энергичности подбавить
источник
2021 January 05

D•

Dan • Captain in Elm Lang сообщество разработчиков
В будущем главным инструментом бизнеса будут Python и Data Science, а не Excel. С их помощью можно строить модели прогнозирования, выявлять скрытые зависимости в данных и анализировать большие объемы информации. Подробнее о функционале Python и Data Science расскажем на вебинаре.

За час вы:
⚡️Узнаете, какие бизнес-задачи решаются с помощью Python.
⚡️Разберетесь, чем Python лучше Excel.
⚡️Поймете, зачем бизнесу анализировать данные.
⚡️Познакомитесь с интересными кейсами применения Python.
❗️Поучаствуете в игре, чтобы закрепить знания.
❗️Получите призы.

Записывайтесь!
источник

🐙

🐙 in Elm Lang сообщество разработчиков
Добрый день. Новичок в ФП и Elm. Делаю приложеньице, в котором надо работать с двумерным массивом/матрицей
1) Какие структуры данных/библиотеки порекомендуете? Пока взял первый попавшийся Matrix, но вижу, что при любом обращении мне удобнее его конвертировать в List of Lists - смысл теряется.
2) Не могу понять, каким образом менять один единственный элемент массива а-ля [1,2,3] -> [1,4,3] в парадигме иммутабельности. В голову пока пришло только пересобирать массив по кускам, но это что-то совсем не то.
Заранее благодарю за советы!
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"Список списков" вполне работает
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Массив массивов — тоже. Обновление массива по индексу может выглядеть проще, чем пересборка списков
источник

🐙

🐙 in Elm Lang сообщество разработчиков
Признаюсь, до массивов в изучении пока не дошёл :) Благодарю, пошёл читать.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Массивы тоже иммутабельные, так что при изменении ячейки придётся всю строку заменять
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но это не так уж и сложно выглядит в коде
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Вот тут у меня двухмерная матричка и операции над ней: https://github.com/astynax/pixcell-elm/blob/master/src/Grid.elm
источник