Size: a a a

2020 November 18

DP

Daniil Prohorov in fprog_spb
Andrey Ivanov
Для пейперов и для жизни
так и есть же
источник

YS

Yan Shkurinskiy in fprog_spb
Yuuri
Стоят два хаскеля... (простите)
На одном пейперы учёные, на другом - проды мучённые?
источник

AI

Andrey Ivanov in fprog_spb
😊
источник

АХ

Алексей Худяков... in fprog_spb
Yuuri
Стоят два хаскеля... (простите)
На какой новичков посадишь, на котором прод скомпилишь?
источник

YS

Yan Shkurinskiy in fprog_spb
На каком диссер получишь*
источник
2020 November 19

a

akond in fprog_spb
Yuuri
Окамл это очень кайфовый язык для системного программирования, что-то из ниши Го: простой и предсказуемый ассемблерный выхлоп, легко (сравнительно) судить о производительности, низкоуровневый ffi с минимальным оверхедом, есть либы в этой области от мираж и джейн стрит. При этом в отличие от Go язык очень выразительный, хорошая система типов.

Как замена Го язык очень годный для тех, кто хочет что-то более выразительное, хоть и ценой библиотек.
а кросс-компилирование в ocaml есть?
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Aleksey @cheatex
Обычно если что то не надо на это вешают тэг deprecated, ну или хотя бы заводят правило в линтер и призывают всех ими пользоваться. А как в хаскеле принято такие проблемы решать?
"Не надо использовать для логирования". Для чего надо, для того используют
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Какие-то "обычные методологии" ещё приплели
источник

AP

Aleksei (astynax) Pi... in fprog_spb
То у вас инженерной культуры мало и паттернов, то методологии уже есть и даже обычные
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Writer не подходит для логирования, но его регулярно в этой роли представляют в книжках. Потому что приходящим людям понятно логирование.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
При этом в чистой функции подкопить немножко чего-нибудь в процессе работы, а потом во внешнем коде с IO записать накопленное в лог — очень даже приемлемо, на мой взгляд. Если писать во Writer недолго, то и натечёт не сильно много.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
А в книжках лучше бы показывали Writer (Sum Int, Min Int, Max Int) a — гораздо более интересный пример, чем притянутое за уши логирование
источник

A

Aleksey @cheatex in fprog_spb
Aleksei (astynax) Pirogov
При этом в чистой функции подкопить немножко чего-нибудь в процессе работы, а потом во внешнем коде с IO записать накопленное в лог — очень даже приемлемо, на мой взгляд. Если писать во Writer недолго, то и натечёт не сильно много.
а в буферезированый вывод стандартная библиотека не умеет?
источник

AP

Aleksei (astynax) Pi... in fprog_spb
В IO — умеет
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Мы же про чистый код говорим
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Writer == кортеж, в одном из полей которого копится структура агрегата (произвольный моноид). Распаковывается кортеж только на верхнем уровне, какой тут может быть буферизованный вывод?
источник

K

Kakadu in fprog_spb
Например, иногда добавление во  Writer возвращает новый Writer, который чуть пооптимальнее устроен
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Не пойму, о чём вы
источник

K

Kakadu in fprog_spb
Правда это с ленью плохо сочетается
источник

AP

Aleksei (astynax) Pi... in fprog_spb
В контексте одного вычисления Writer один. Никакого возврата "нового более оптимального Writer" нет. Если вы вне заивисмости от исходного Writer не запустите новый и не запишете результат его прогона как один кусок во внешний Writer, предварительно зафорсив этот результат. Но это уже извращение какое-то
источник