Size: a a a

2018 December 18

SK

Sergey Kapralov in JUG NN
Обратно потом группить?
источник

RK

Roman Khlebnov in JUG NN
Тогда работа с внешним контекстом в помощь, как и в for
источник

RK

Roman Khlebnov in JUG NN
Либо поломать голову над правильным коллектором
источник

RK

Roman Khlebnov in JUG NN
Вообще for vs stream - такое, от юзкейса к юзкейсу. Но если задача может быть решена достаточно легко стримами - я не задумываясь буду делать через них
источник

SK

Sergey Kapralov in JUG NN
Roman Khlebnov
Либо поломать голову над правильным коллектором
Ну вот я не вижу нужды изголяться таким макаром, когда через классику это делается несложно.
источник

SK

Sergey Kapralov in JUG NN
По крайней мере если нет нужды это параллелить
источник

SK

Sergey Kapralov in JUG NN
Если есть - да, придется поизголяться
источник

SK

Sergey Kapralov in JUG NN
Но это уже вопрос прагматики, а не эстетства.
источник

С

Сергей in JUG NN
циклы не нужны, рекурсия ftw :)
источник

SS

Sergey Smyshlyaev in JUG NN
Oleg Kabanov
Есть интересная книжка: Чисто функциональные структуры данных
в ней описываются структуры данных и алгоритмы для немутабельных структур

утверждается что чаще всего можно реализовать структуры не медленнее чем мутабельные и алгоримы в императивном стиле, но порой это не эффективно

Если можно не париться с проблемами многопоточности, которые так невовремя появляются всегда - почему не пользоваться этим инструментом?
Там большинство книги написана до появления статьи Багвела про HAMT. После того как вышла эта статья, вся эта разнообразная петрушка стала ненужна, только HAMT и его вариации актуальны
источник

SS

Sergey Smyshlyaev in JUG NN
Sergey Kapralov
Мой вопрос - чего страшного в стейте
А можно встречный вопрос, ты Java Concurrency in Practice читал?
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
А можно встречный вопрос, ты Java Concurrency in Practice читал?
К чему вопрос. Аккурат коментом ниже я признаю что "есть что"
источник

SS

Sergey Smyshlyaev in JUG NN
Тут проблема в том, что при наличии шареного (не обязательно глобального) мутабельного стейта практически невозможно писать корректные программы в многопоточной среде
источник

SS

Sergey Smyshlyaev in JUG NN
И эта книга тому подтверждение
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
Тут проблема в том, что при наличии шареного (не обязательно глобального) мутабельного стейта практически невозможно писать корректные программы в многопоточной среде
СУБД - не шаренный ли мутабельный стейт?
источник

SK

Sergey Kapralov in JUG NN
Файл на диске?
источник

SS

Sergey Smyshlyaev in JUG NN
В СУБД есть транзакции
источник

SS

Sergey Smyshlyaev in JUG NN
Вот как раз в Clojure одно из решений - это software transactional memory, та же самая база данных в памяти
источник

SK

Sergey Kapralov in JUG NN
Я к тому что - да, стейт вредит, но он попросту неизбежен. Он всегда будет в том или ином виде.
источник

SS

Sergey Smyshlyaev in JUG NN
А файл на диске можно писать в несколько потоков? Я просто не шарю, давно таким не занимался
источник