@haskellru

Страница 1236 из 1551
Alexander
01.06.2018
07:24:56
data QQ a = QQ a NewFields?

и инстансы для них

A64m
01.06.2018
07:49:07
или-паттерны таки немного продвинулись (снова попали на обсуждение комитета) https://mail.haskell.org/pipermail/ghc-steering-committee/2018-June/000601.html

а то автор был уже, похоже, на вышеупомянутой границе боли и унижения, которые он мог себе позволить https://github.com/ghc-proposals/ghc-proposals/pull/43#issuecomment-393777358

Google
Anatolii
01.06.2018
07:50:36
data QQ a = QQ a NewFields?
ну я так уже тоже подумал, проблема в том что там есть еще вложенные поля для которых мне тоже надо такое делать

Alexander
01.06.2018
07:51:39
превращать а object добавлять поля на уровне object

A64m
01.06.2018
07:52:16
опять типы не натянулись

ну и появился диф вырезающий DPH, вот это убирание экстеншона так убирание. хотя им никто никогда не пользовался, но ради (и первоначально в рамках) этого десятилетнего долгостроя хаскель стал из переэмеля недоомегой, например.

A64m
01.06.2018
08:41:12
не вмерджили еще

может, кстати, и не вмерджат. этот несчастный DPH уже пару раз приговаривали, но так и не удушили

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

Leonid
01.06.2018
08:42:43
> vectorise: Put it out of its misery

Denis
01.06.2018
08:49:54
натяну типы на задачу, дорого

Anatolii
01.06.2018
08:52:27
это ж поидее любой Generic можно сделать Value

тогда я могу сделать что хочу

A64m
01.06.2018
08:53:05
с Value-то конечно

Google
A64m
01.06.2018
08:53:37
но я не знаю какие рекорды в какие надо преобразовывать, может это несложно сделать даже и без дженериков

тогда все нормально типизировано будет

Timofey
01.06.2018
10:17:42
натяну типы на задачу, дорого
А задача похожа на глобус?

Yuriy
01.06.2018
10:18:32
вот так сработало time :: Lens' _ Time time = _3
совсем забыл про анонимные структурки

A64m
01.06.2018
10:20:07
можно просто несколько параметров в рекорд объединить, для рекордов полно всяких фич, которые облегчают такое использование

Yuriy
01.06.2018
10:39:47
а какие безымянные рекорды принято носить с линзами в это врямя суток?

A64m
01.06.2018
13:14:00
не знаю, нормальных среди них нету даже по меркам таких штук

так что все равно, наверное

самые используемые - винил

Denis
01.06.2018
13:14:57
есть еще https://github.com/target/row-types

A64m
01.06.2018
13:15:02
самые удобные, по моему, из всех пруф оф концептов так и не были доделаны и уже сгнили

Yuriy
01.06.2018
13:15:25
вроде bookkeeper и rawr были на слуху недавно

Denis
01.06.2018
13:16:21
ну и superrecord

A64m
01.06.2018
13:16:40
ну есть форк пикеринга на гитхабе, но на хекедже его нет

суперрекорд не сортирует

есть еще https://github.com/target/row-types
а это вообще хешмапы вроде

Denis
01.06.2018
13:18:07
а это вообще хешмапы вроде
не, вроде рекорды и еще есть data-diverse

A64m
01.06.2018
13:18:31
рекорды, но имплементированы как хешмапы

Google
A64m
01.06.2018
13:19:06
буккипер современные рекорды (с сортировкой), но мне они в свое время не понравились, правда вроде библиотека живая

и там есть хорошая фича конвертации из обычного рекорда

Denis
01.06.2018
13:19:41
суперрекорд не сортирует
сортирует, поэтому компилирует до нового года

A64m
01.06.2018
13:19:55
да они все такие

ну в rawr был просто максисмум в 8 элементов

до 10 элементов они обычно быстрые

ну и у некоторых либ типа винила или суперрекорда поддержка линз не по умолчанию, т.е. там они все будут r ^. пожалуйстаСделайЛинзу foo

Yuriy
01.06.2018
13:51:13
получилось нормально с Буккипером, без пожалуйстаСделайЛинзу

код местами стал понятнее

сообщения об ошибках стали сумасшедшими

• Occurs check: cannot construct the infinite type: old0 ~ type-level-sets-0.8.7.0:Data.Type.Map.Nub ((type-level-sets-0.8.7.0:Data.Type.Set.Sort (type-level-sets-0.8.7.0:Data.Type.Set.Filter 'type-level-sets-0.8.7.0:Data.Type.Set.FMin ("jobs" 'type-level-sets-0.8.7.0:Data.Type.Map.:-> t0 (t1 Work)) (type-level-sets-0.8.7.0:Data.Type.Map.Nub (type-level-sets-0.8.7.0:Data.Type.Set.Sort (old0 type-level-sets-0.8.7.0:Data.Type.Map.:\ "jobs")))) ...

Misha
01.06.2018
14:16:19
что-то туплю: type Key k = (Eq k, Ord k) get :: (Index.Key ix, Lookup ixs ix) => IxSet ixs v -> ix -> STM [v] get set ik = let idx = getIdx set ik in return [] getIdx :: (Key ix, Key i, Lookup ixs ix) => IxSet ixs v -> i -> Idx v ix getIdx (Empty _) _ = Hole getIdx (IdxSet _ indexes) ik = Lookup Proxy (Proxy :: Proxy ik) indexes говорит Could not deduce (Eq ix0, Ord ix0) arising from a use of ‘getIdx’ from the context: (Index.Key ix, Lookup ixs ix) bound by the type signature for: get :: (Index.Key ix, Lookup ixs ix) => IxSet ixs v -> ix -> STM [v]

почему getIdx натягивается, а get - нет?

Yuriy
01.06.2018
14:23:27
Proxy ik?

откуда ik?

getIdx (IdxSet _ indexes) ik = Lookup Proxy (Proxy :: Proxy ik) indexes — здесь значение ik не используется, а тип ik не вводится (да, это разные вещи)

Yuriy
01.06.2018
14:35:46
заработало?

Google
Yuriy
01.06.2018
14:38:00
код местами стал понятнее
главное — не пришлось писать тип даже локально. начального значения структурки хватило

единственное, что не очень красиво с bookkeeper — приходится писать emptyBook. у Rawr было красивее

A64m
01.06.2018
14:39:53
но там цена такой красивости в исплементации, конечно, адовая

не удивительно, что ее забросили

Misha
01.06.2018
14:41:51
заработало?
да, тайпчекается

Leonid
01.06.2018
14:43:49
@catamorphism подсел я на ваш стиль индентации аннотаций. Красиво. handleGetAssetPaths :: TxMonad m n => DataStore n => KatipContext m => HandleT Api.GetAssetPaths m

A64m
01.06.2018
14:44:19
да

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

в буккипере же вся имплементация вообще из другой библиотеки

@catamorphism подсел я на ваш стиль индентации аннотаций. Красиво. handleGetAssetPaths :: TxMonad m n => DataStore n => KatipContext m => HandleT Api.GetAssetPaths m
когда в 2005-ом году рекламировали ФП, то говорили что типы писать не надо, код выглядит как скриптовый. обманывали, конечно.

Leonid
01.06.2018
14:48:57
Ну, типы проще и важнее документации

A64m
01.06.2018
14:50:31
ну да, но это никак не противоречит неписанию типов

Yuuri
01.06.2018
14:51:18
@catamorphism подсел я на ваш стиль индентации аннотаций. Красиво. handleGetAssetPaths :: TxMonad m n => DataStore n => KatipContext m => HandleT Api.GetAssetPaths m
Красиво, но расстраивает, что с => начинаются как констрейнты, так и первый аргумент <_<

A64m
01.06.2018
14:51:36
проблема-то в том, что типы не прочитаешь пока сам их не впишешь куда надо, ведь тулинг отстойный

Leonid
01.06.2018
14:55:50
A64m
01.06.2018
14:56:02
топлевельной

Leonid
01.06.2018
14:56:33
для всего остального аннотации редко нужны

Google
Leonid
01.06.2018
14:56:43
если конечно у вас не линзо-шайтан

A64m
01.06.2018
14:57:08
но с позиций "типы - лучшая документация" аннотации типов могут быть ценны много где. причем что самое плохое - для разных читателей в разных местах

а где не линзо-шайтан и без типов все понятно

короче как обычно, там где надо - как раз и не будет

Leonid
01.06.2018
14:57:53
ну если у вас where на экран то конечно

A64m
01.06.2018
14:58:10
а зиллион тривиальных сигнатур заставит Wall проставить

Denis
01.06.2018
14:58:27
Красиво, но расстраивает, что с => начинаются как констрейнты, так и первый аргумент <_<
я на самом деле констрейнты в скобочки беру, если их много и внутри скобочек тоже сдвигаю

Leonid
01.06.2018
14:58:46
а меня не обламывает =>

A64m
01.06.2018
14:59:43
мне вроде понравилось без скобок писать, я эти констрейнотуплы недолюбливаю. но привычку уже трудно перебороть, руки сами вбивают констрейнотуплы

Yuuri
01.06.2018
15:01:26
@catamorphism а у вас стайлгайд есть где-нибудь на посмотреть?

A64m
01.06.2018
15:02:26
вообще мне не нравится вот эта вот культура аннотирования всего топлевельного полностью. лучше бы была культура частичного аннотирования там где надо

особенно сейчас когда куча сигнатур плохо читается, т.е. сложнее чем код

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

Евгений
01.06.2018
15:07:00
А в этих ваших недоide есть фича "нажал на кнопку и появляется аннотация"?

Хотя бы топлевельная

Anatolii
01.06.2018
15:07:33
гхц-мод вроде так умеет

а он работает с новыми компиляторами?

A64m
01.06.2018
15:08:30
можно и тип какого-то куска кода посмотреть

это все работает не блестяще, конечно

а он работает с новыми компиляторами?
автор hie фактически поддерживает форки ghc-mod для новых версий

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