
Alexander
28.09.2017
14:32:03
просто отсуствие даже гарантии, если функция создать снапшот завершилась, то данные будут сохранены за исключением если был fs corruption

Anatolii
28.09.2017
14:32:06
хотя наверное нет

Alexander
28.09.2017
14:32:15
ну там по мотивам lmdb вроде?

Anatolii
28.09.2017
14:33:27
https://github.com/haskell-haskey/haskey

Google

Anatolii
28.09.2017
14:33:51
https://github.com/dmbarbour/haskell-vcache еще находил когда-то
но везде всякие приписочки
типа not ready for production и всякое такое :(

Alexander
28.09.2017
14:34:19
Haskey (an embedded key-value store modeled after LMDB)
Student: Henri Verroken
Mentor: Steven Keuchel
Co-mentor: George Karach
lmdb кстати очень маленький
<10kloc
на си
вот там ещё Зефиров делал key value на haskell
вообще serokel молодцы что нативное решение используют

Artyom
28.09.2017
14:38:08
@jagajaga он опять нас с одной буквой l написал!!
всё, разрывай дипломатические отношения

Arseniy
28.09.2017
14:38:49
разорвал договор

Alexander
28.09.2017
14:40:27
чорт
@lightgreen буков слишком много, я больше чем creat запоминть не могу, тяжелое сишное прошлое

Google

Pig
28.09.2017
18:21:19
https://github.com/hmemcpy/milewski-ctfp-pdf

Mikhail
28.09.2017
18:22:15
Wow, noice.
https://github.com/hmemcpy/milewski-ctfp-pdf/blob/master/src/ctfp.texi#L113
тут чето целой второй части нету

Pig
28.09.2017
18:33:23
WIP

Mikhail
28.09.2017
18:34:31
Не очень понятно зачем делать часть (3) перед (2), но ок

Denis
28.09.2017
21:08:11
https://github.com/TerrorJack/nodejs-interop/blob/346c2b4221a569974d9844d297c89cdf7877c584/README.md#readme
https://www.reddit.com/r/haskell/comments/72gc7n/rust_has_safety_features_less_room_for_bugs_yet/

kana
28.09.2017
22:05:02
почти устроился в серокелл, нужно только разобраться с армией
Еще месяц назад я не думал, что это в принципе возможно, работать хаскелистом

Arseniy
28.09.2017
22:06:50
Серокель ?♂

Mikhail
28.09.2017
22:08:02
ллъ*

kana
28.09.2017
22:08:23
По моему, за "Хаскелл" было столько же голосов, сколько за "Хаскель"

Artyom
28.09.2017
22:09:09
голосов где? ?

Mikhail
28.09.2017
22:09:25
Народ выходил на площадь и кричал, чо за вопросы?

Artyom
28.09.2017
22:10:03
а, точно, помню
по телевизору показывали

kana
28.09.2017
22:10:11
тут голосование устраивали

illiatshurotshka❄️
28.09.2017
22:12:32
интересно узнать как эти люди "хаскелл" читают вообще

Artyom
28.09.2017
22:13:06
наверно, как “максвелл”, только “хаскелл”

Alexander
28.09.2017
22:16:53
я уже предлагал хацкель?

Google

Artyom
28.09.2017
22:17:53
у меня есть подозрение, что все, кто говорили бы “хацкель”, и так уже так говорят, а остальные не будут говорить, даже если кто-то предложит

illiatshurotshka❄️
29.09.2017
05:06:32
неплохая идея

Konstantin
29.09.2017
05:07:24
кулхацкель

Aleksey
29.09.2017
05:32:10
Hackell

adam
29.09.2017
05:38:28
Huskhell

Anatolii
29.09.2017
05:44:13

Gleb
29.09.2017
06:04:45
Привет что читать следующее после "Изучай хаскель во имя добра"

Mikhail
29.09.2017
06:07:35
Канта. Вообще у @lightgreen была какая-то подборка статей (или книга?) с профаунд фичами. Еще я хотел http://haskellbook.com/, но они вроде тот же материал покрывают что lyah.
А вообще если погуглить, то можно наткнуться на этот пейдж: https://wiki.haskell.org/Books
http://book.realworldhaskell.org/read/
Вот этот ресурс в выдаче гугла всплывает достаточно часто, но я подозреваю что там многое уже outdated и _совсем немодное_.

Denis
29.09.2017
06:12:28
просто читать - до одного места
иди каты например решай

Mikhail
29.09.2017
06:14:26
@xgrommx а какую инфу они покрывают вообще?
Я вообще не очень представляю себе как промоделировать задачу "показать человеку как строить человеческие монад стэки" в контексте задачек — для этого надо написать софтину

Aleksey
29.09.2017
06:16:08
Для закрепления понимания можно порешать задания для курса NICTA - после LYaH хорошо зайдут
А читать - Parallel and Concurrent Programming in Haskell
По монадкам и трансформерам можно почитать пейпер "All about Monads" - там для каждой из базовых монад есть пара понятных примеров

Mikhail
29.09.2017
06:19:44
Я еще нахожу typeclassopedia мастридом, там как раз уровень невысокий.

Aleksey
29.09.2017
06:20:09
"как строить человеческие монад стэки" - тут всё похоже на пресловутые паттерны проектирования: нужно состояние, втыкаешь State, нужна запись промежуточных результатов - Writer
+1 за typeclassopedia

Google

Mikhail
29.09.2017
06:20:51
:peka:
https://www.fpcomplete.com/blog/2017/06/readert-design-pattern

Aleksey
29.09.2017
06:21:34
Глубокие стэки нечасто бывают в жизни

Mikhail
29.09.2017
06:22:17
Ну если размер стэка 3 то можно пережить, наверное

Aleksey
29.09.2017
06:23:55
3 - норм. Плохо, когда все три слоя присутствуют в сигнатурах большей части кода - когда даже чистые функции запачканы по причине того, что "так быстрее писать"

Mikhail
29.09.2017
06:24:29
А, ну тайпкласс фигакс на свой слой. То как ты описал — да, жутко. Дальше распутывать макароны будет мучительно больно.

Alexander
29.09.2017
06:25:59
а после того как научишься делать стеки - берёшь и используешь ReaderT Env IO и морфизмы между такими

Mikhail
29.09.2017
06:27:34
Не понял про морфизмы. Если речь идет о том чтобы какой-то кусок заменить на другой, то вроде хватает https://hackage.haskell.org/package/mmorph-1.0.9/docs/Control-Monad-Morph.html#t:MFunctor
и подобных
(если стэк ненулевой высоты)
https://www.youtube.com/watch?v=YTaNkWjd-ac не к этому ли видосу референс?

Alexander
29.09.2017
06:32:55
Control.Monad.Morph - это конечно про морфизмы, и или оно будет использоваться или руками, у Кметта конечно более полный и хороший вариант
впрочем в случае с ReaderT Env IO эта полнота не нужна

Aleksey
29.09.2017
06:37:29
ReaderT Env IO это на верхнем уровне. Локально то и другие монадки могут быть, особенно в чистом коде - ExceptT/ValidationT всякие и State тот же

Alexander
29.09.2017
06:37:55
да\

Mikhail
29.09.2017
06:40:15
Бесспорно, иначе всё очень плохо абстрагируется.

Alexander
29.09.2017
07:14:54
я про то, что идти в сторону больших стеков, которые 32Гб памяти при сборке выжирвают тоже плохо
а у нас есть простой варинт, как сделать так чтобы traverse/alternative при хождении по map ключи видело?

Google

Yuriy
29.09.2017
07:40:04
traverseWithKey

Kirill
29.09.2017
07:40:31
Кстати есть где-нибудь best practice по отделению чистого кода от трансферов и монадок? А то каждый раз как нужно делать походы в базу вылезает IO

Mikhail
29.09.2017
07:41:28
Абстрагируй базу тайпклассом.
Либо абстрагируй логику модификации и сделай инстанс через базу (с io констрейнтом) и через еще что-нибудь

Alexander
29.09.2017
07:42:27
@cblp_su общее, а не из либы, так то ответ foldrWithKey

Kirill
29.09.2017
07:42:36

Artyom
29.09.2017
07:43:00

Alexander
29.09.2017
07:43:04
class MonadDb m where operationsWithDb :: ...\

Yuriy
29.09.2017
07:43:16

Mikhail
29.09.2017
07:43:36
SQL-shit нет опыта

Alexander
29.09.2017
07:43:52
что-то что работает над любым applicative,alternative нужной формы
или newtype какой в который завернуть

Kirill
29.09.2017
07:44:22
Хотя наверно можно абстрагировать не саму базу, а операции над данными, потом закинуть это всё в монадку и в тестах можно будет подставлять Id

Alexander
29.09.2017
07:45:02
ещё если не нравятся mtl-style монады, то можно в data structure все завернуть