Ура! // обмазываюсь потихоньку, сокращаю строки кода
ReportDataMap $!! (hm & at (ev ^. evAdId) . non mempty
. rdPerHourMap
. at (hourTS ev) . non mempty
. rhViews +~ 1)
-- ReportDataMap $!! H.insertWith
-- (\_ old -> incReportDataView (hourTS ev) old)
-- (ev ^. evAdId)
-- (singleViewReportData (hourTS ev))
-- hm
Недели охуительных багов в мкдоналдс
https://github.com/informatikr/hedis/issues/15
https://github.com/bos/attoparsec/issues/70
Посоветуйте, кто пользовался, хороший LRU для хаскеля (или как искать). При том, что скорее всего придётся немного допилить его API под конкретную нужду (а может взять и свой небольшой написать?).
Паттерн использования такой: идёт поток ивентов, среди них нужно учитывать только последний по какому-то id-полю. То есть пока я думал сделать LRU-кеш, переписывая по этому самому id-полю значения, при удалении из LRU считать объект "конечным", также при окончании ивентов всё, что внутри LRU считать конечным.
Продолжая популярную тему "что меня восхитило" хочу поделиться, что только что написал вот этот кусок кода:
countViewsAndDurationsFold :: L.Fold Event ReportDataMap
countViewsAndDurationsFold = countViewsFold `mappend` countDurationsFold
Вот это меня действительно восхитило.
Мой маленький парсер логов, который берёт инпут из stdin, в какой-то момент постоянно начинает получать:
<stdin>: hGetLine: invalid argument (invalid byte sequence)
Сделал маленький пример на воспроизведение https://bitbucket.org/k_bx/infinite_getline , жду пока повторится.
А вообще, очень рад расширению OverloadedLists [0]. Особенно в контексте удобного создания непустых списков, например.
https://www.haskell.org/ghc/docs/7.8.1/html/users_guide/type-class-extensions.html#overloaded-lists
Если, вдруг, кому нужно https://bitbucket.org/k_bx/docker-ghc-7.8
Таки воскресенье провёл не зря. Наконец-то у меня вышло донастроить емакс + хаскель-мод. Теперь оно дружит с сандбоксами, умеет к любой фигне вывести тип, умеет автоматом тип этот написать, ну и REPL с одноклавишной загрузкой туда файла на "поиграться".
Ох, руки болят, чувство что отошлют куда подальше, но надежда пока еще не умерла https://github.com/informatikr/hedis/pull/13
Вопрос к читавшим Functional Data Structures Окасаки. Вы читали вникая в доказательства или нет? То есть, я сейчас прочитал до места, где сложность очередей доказали через Banker's и Physicist Method'ы, и осознал, что либо мне нужно перечитывать всё с самого начала (а перед этим желательно почитать много разных примеров попроще по доказательству при помощи амортизации), либо забить и читать доказательства поверхностно, а внимательно читать только код.
Они там снова упоролись http://www.yesodweb.com/blog/2014/02/new-warp