@haskellru

Страница 1478 из 1551
Alexander
20.09.2018
11:09:31
а тут обойдёмся без оффтопа, спасибо

Victor
20.09.2018
11:09:56
Ок )

Aleksey
20.09.2018
11:15:29
А кто как решает проблему error "FIXME: implement later" ?

Google
Aleksey
20.09.2018
11:15:50
постоянно забываю воткнуть реализацию а компилятор никак не предупреждает

можно конечно ревью, но хочется автоматически

Andrey
20.09.2018
11:16:14
undefined + -Wall

Aleksey
20.09.2018
11:16:34
Wall воткнут

а он внезапно ругается на undifined но не ругается на error ?

Alexander
20.09.2018
11:16:57
{-# DEPRECATED fixme "is not allowed in production #-}

тогда сборка с -О0 или ghci будет работать

Dmitry
20.09.2018
11:17:26
я правильно понимаю, что это получается решение, как Handle pattern, только вместо того, чтобы жить в IO и таскать структуры явно мы таскаем их в контексте?
Да, это похоже на правду. Структурка таскается в ReaderT, а еще структурка представлена как extensible record заодно, чтобы можно было и расширить в середине кода при желании

Aleksey
20.09.2018
11:17:47
{-# DEPRECATED fixme "is not allowed in production #-}
завести фунцкию типа?

Alexander
20.09.2018
11:18:04
завести фунцкию типа?
да, и пометить deprecated

Aleksey
20.09.2018
11:18:14
прикольно

Anatolii
20.09.2018
11:18:26
можно оставлять "_"

Aleksey
20.09.2018
11:18:40
вот бы эту функцию еще в отдельном пакете найти

Google
Dmitry
20.09.2018
11:20:45
ага, поиск по структуре логарифм? добавление тоже или О(н)?
В качестве структуры используется typerep-map, которая реализует быстрый бинарный поиск на примитивном массиве. То есть поиск за логарифм, но с маленькой константой. А добавление за O(n).

Alexander
20.09.2018
11:25:03
у меня где-то (!) не могу найти валялась структура с O(1) доступом, но О(n) модификацией

ну и boxed только

меня в рассылке наругали что мол с ленивостью давай лучше дерево

это там где функция baal была для генерации меняющих тип линз

потому что иначе ее не назовешь

и я думаю я его пару раз вызвал

надо будет найти и побенчмаркать

хотя может и не надо

но она была по типу рекордов с полями на уровне типов и.е. не то, что typemap

Aleksey
20.09.2018
11:29:11
вот бы эту функцию еще в отдельном пакете найти
В альтернативных прелюдах такое встречается. В universum что-то было похожее, еяпп

Aleksey
20.09.2018
11:30:05
не комильфо в целой прелюдии такое

Alexander
20.09.2018
11:30:49
можно оставлять "_"
собирается в ghci/O1?

A64m
20.09.2018
11:33:27
с ключем каким-то будет собираться

Aleksey
20.09.2018
11:38:21
лучше тогда WARNING прагму юзать

депрекейшн не для этого всё же

Alexander
20.09.2018
11:40:05
да, можно warning

хотя стоп, я не уверен, что у warning и deprecation одно и тоже поведение везде

Google
Aleksey
20.09.2018
11:41:24
В доке написано, то это одно и то же

Alexander
20.09.2018
11:41:40
ну ок

Aleksey
20.09.2018
11:41:57
> Causes a warning to be emitted when a module, function or type with a WARNING or DEPRECATED pragma is used.

это про -Wdeprecations

Alexander
20.09.2018
11:42:12
точнее чуть побольше действий

fixme = id {-# NOINLINE fixme #-} {-# RULE do/fixme forall a . fixme a = warning a #-} warning = id {-# WARNING warning "..." #-}

что-то такое

assert наоборот

Dmitry
20.09.2018
11:43:37
у меня где-то (!) не могу найти валялась структура с O(1) доступом, но О(n) модификацией
Вроде у superrecord как раз O(1) быстрый доступ и за O(n) обновление http://hackage.haskell.org/package/superrecord

Alexander
20.09.2018
11:46:22
там кстати через smallarray это получше

хотя не помню поверх чего у меня было

A64m
20.09.2018
11:52:34
в виниле теперь тоже есть вариант на массивах

Alexander
20.09.2018
12:52:18
@chshersh спасибо кстати за ссылку на пакет, я чего-то про него и забыл сильно и похоже в некоторых местах я его с удовольствием заюзаю

а может просто typeremap использую, если у него есть бесплатное сужение

т.е. из R [A,B,C] мы можем получить R [A,C] бесплатно

Denis
20.09.2018
12:53:43
есть еще type-row или как-то так

Alexander
20.09.2018
12:54:08
ну я помню дизайн typeremap он мне понравился (я бы делал так же)

Denis
20.09.2018
12:54:16
https://github.com/target/row-types

Alexander
20.09.2018
12:54:43
а что там было с экстеншеном компилятора?

не, это не то, что мне нужно

Google
A64m
20.09.2018
12:55:14
с плагином?

Alexander
20.09.2018
12:55:18
ага

Denis
20.09.2018
12:55:43
СRex?

или как его там

Alexander
20.09.2018
12:55:48
мне ж нужна функция R -> Maybe t

Denis
20.09.2018
12:56:02
Alexander
20.09.2018
12:56:10
ну или t In tt => R tt -> t

имя структуры whatever it is

Denis
20.09.2018
12:57:02
типа опциональный деструктор?

A64m
20.09.2018
12:57:31
СRex?
речь про https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain видимо

Admin
ERROR: S client not available

A64m
20.09.2018
12:58:00
там особо и не доделано, ну и на гитхабе где-то год активности не видно

Denis
20.09.2018
12:58:03
а я про https://wiki.haskell.org/CTRex говорил походу

A64m
20.09.2018
13:02:00
чет у меня никак руки не дойдут бенчмарк разных рекордов сделать, я уже и парсер для -v выхлопа накостылил

Denis
20.09.2018
13:04:06
чет у меня никак руки не дойдут бенчмарк разных рекордов сделать, я уже и парсер для -v выхлопа накостылил
знаю про такой список https://docs.google.com/spreadsheets/d/14MJEjiMVulTVzSU4Bg4cCYZVfkbgANCRlrOiRneNRv8/edit#gid=0

A64m
20.09.2018
13:11:41
не вижу самого главного показателя, на скольки полях гхц загибается

Denis
20.09.2018
13:12:28
не вижу самого главного показателя, на скольки полях гхц загибается
вот можешь дополнить) я знаю ты любишь такое делать, например мучал хештаблицы и generic lens

A64m
20.09.2018
13:13:43
я ничего не люблю

Alexander
20.09.2018
13:15:09
@xgrommx мне важны не имена полей, а типы

т.е. тип это имя поля

Google
Denis
20.09.2018
13:15:39
что-то типа typelevel list?

Alexander
20.09.2018
13:15:40
это сильно уменьшает интерфейс и упрощает жизнь

обычный гетерогенный список

с typelevel информацией о том, что там лежит

что там *точно* лежит

т.е. мне норм если там будет лежать больше, чем я мне надо, просто я не смогу это достать

Denis
20.09.2018
13:17:46
это какой-то opened type sum?

Alexander
20.09.2018
13:18:06
да

Denis
20.09.2018
13:18:29
да
fastsum смотрел?

Alexander
20.09.2018
13:20:36
> project :: forall e r v. e :< r => Sum r v -> Maybe (e v) wtf>

?

нет опять же это оверкил для задачи

так же пакеты инстансы которых я не могу увидеть до конца при масштабе 10% в браузере это не интересно

пакет норм, но для другого

опять же он не плоский

т.е. мне нужен более менее безопасный стораж поверх массивов с индексированием по типам, logN меня устраивает

Denis
20.09.2018
13:25:04
мб что-то такое? https://github.com/i-am-tom/learn-me-a-haskell#oneof но это вроде обычный Union там еще есть HList Bag HTree

Alexander
20.09.2018
13:25:28
а почему бы мне не использовать typeremap?

HList HTree не плоские

Bag тупо совсем не то

Denis
20.09.2018
13:28:32
@qnikst есть еще http://hackage.haskell.org/package/union https://hackage.haskell.org/package/open-union но в одном из них винил

Alexander
20.09.2018
13:28:46
да я в курсе

ты так говоришь, как будто я этих пакетов не видел

Страница 1478 из 1551