
kana
17.07.2018
12:30:01
а с Default => Monoid теряешь смысл

Index
17.07.2018
12:30:22
да
Хороший вариант. А также напоминает мне о кошмарной эргономике ньютайпов, с которой я вынужден согласиться.

shadowjack
17.07.2018
12:31:01

A64m
17.07.2018
12:31:23
да, пока ньютайпам UX не поправят все эти разговоры про "я лучше в ньютайпы оборачивать буду" так разговорами и останутся. никто не хочет оборачивать в ньютайпы

Google

Index
17.07.2018
12:31:54
На самом-то деле с ума я тогда чуть не сошел, потому что думал, что List.length примерно равен length @[], и что у меня уж точно нужный инстанс выбирался (для списка)

shadowjack
17.07.2018
12:32:00

Index
17.07.2018
12:32:02
где import qualified Data.List as List
а когда я обнаружил (вспомнил), что List.length перегруженный, то тогда и понял как исправлять

A64m
17.07.2018
12:32:48
да, есть такая проблема

kana
17.07.2018
12:33:02
да госпади, Default определяет значение для типа, в моноиде mempty не для типа, а для операции, это блин разные вещи
если найдешь способ делать инстанс Default для конкрнтой операции, то тогда можно сделать что-то типа
{M : Type} {f : M -> M} {{ x : M } : Default f}
Monoid m = { (<>) = f, zero = x }

A64m
17.07.2018
12:33:02
но без нее слишком много кода поломали бы

shadowjack
17.07.2018
12:34:07

Index
17.07.2018
12:34:21
> да госпади, Default определяет значение для типа, в моноиде mempty не для типа, а для операции, это блин разные вещи
Ну по-моему утверждение @eahqzsr в том, что так же, как Default выбирает значение для типа, Monoid выбирает операцию для типа
тоже достаточно арбитрарно
"из общих соображений" как @A64m_qb0 говорит

shadowjack
17.07.2018
12:35:00

A64m
17.07.2018
12:35:10
выбор операций и значений не сопоставим, правда

Google

shadowjack
17.07.2018
12:35:24

Index
17.07.2018
12:35:27
это еще почему, операция это тоже значение

kana
17.07.2018
12:35:30

shadowjack
17.07.2018
12:35:43

kana
17.07.2018
12:36:26
ну это вы какие-то доебки уже погнали

A64m
17.07.2018
12:36:29
операций обычно 1-2 ходовых и 2-3 экзотических а значений - двузначные степени двойки

shadowjack
17.07.2018
12:37:02

A64m
17.07.2018
12:37:17
часто используемых

Index
17.07.2018
12:37:45

shadowjack
17.07.2018
12:37:55
Значений часто используемых тоже немного

Index
17.07.2018
12:37:58
2 ходовых значения, True и False
и еще одно экзотическое, bottom

shadowjack
17.07.2018
12:38:10

Index
17.07.2018
12:38:30
у классов два инстанса не бывает

Denis
17.07.2018
12:38:44
у кого-то нет работы

A64m
17.07.2018
12:38:49
да, Bool выбивается из общего ряда, конечно

shadowjack
17.07.2018
12:38:52
Бывает два ньютайпа

kana
17.07.2018
12:39:03

Index
17.07.2018
12:39:16
в чем смысл делать класс, а потом по ньютайпу на каждый инстанс? можно просто использовать значения сразу

shadowjack
17.07.2018
12:40:26

Google

Index
17.07.2018
12:40:47
а можно sum

shadowjack
17.07.2018
12:41:20
Можно

Index
17.07.2018
12:41:22
когда можно мономорфно - надо и писать мономорфно
полиморфные операции полезны, когда их можно реюзать на нескольких инстанцированиях

shadowjack
17.07.2018
12:41:57
Так с булами то же самое
Можно определить Truish и Falseish и через них All и Any

A64m
17.07.2018
12:42:51
весь смысл дизайна тайпклассов, что есть некое счастливое место, в котором все собирается автомагически, и если из него вылезти - то начинаются страдания с ньютайпами, рефлекшоном и проч. ужасы. Если бороться со счастливым местом ради унификации ужаса - тогда уж последовательнее вообще с тайпклассами бороться за эмельные модули

Index
17.07.2018
12:44:19
/ну и что мне теперь, ML что ли изучать после этого/
он же не ленивый, чего его изучать

A64m
17.07.2018
12:46:24
ну или на агде писать, она-то ленивая же.

Index
17.07.2018
12:47:09
я один раз писал на Agda, сейчас найду

Vasiliy
17.07.2018
12:47:12
думаю начать проходить http://dev.stephendiehl.com/fun/index.html
но смущает, что много глав нехватает
мб кто-нибудь знает: пишутся ли остальные главы?

Index
17.07.2018
12:47:50
never again

kana
17.07.2018
12:47:56
а там и без этого достаточно много инфы полезной

Index
17.07.2018
12:48:09
и это не говоря о производительности того, что MAlonzo генерирует

Vasiliy
17.07.2018
12:48:49

kana
17.07.2018
12:48:53

A64m
17.07.2018
12:49:09
ну, справедливости ради они постоянно что-то делают чтоб производительность получше была. толку вроде немного, правда, так что правильнее сказать, что регулярно в чейнджлоге пишут о своих трудах

Index
17.07.2018
12:49:36
они там с malfunction интегрировались, вдруг из этого что-то получится

Google

A64m
17.07.2018
12:49:56
малфункшон вроде помер уже

Index
17.07.2018
12:50:17
а зачем ему жить, он же просто оборачивает бэкенд OCaml
или ты про интеграцию Агды с ним?

A64m
17.07.2018
12:50:34
более актуальная исптория с грин бекендом (но там ничего хорошего нне будет)

shadowjack
17.07.2018
12:50:40
А класс "конечные функторы" есть?

Admin
ERROR: S client not available

A64m
17.07.2018
12:51:07
по моему, агда только больше концентрируется на малонце, там уже и стандартные списки гхц-ные используют и вообще все больше затачивание на интеграцию с гхц
я, правда, не агдист, но раньше такого не было.
были какие-то потуги с эпиком, бекенд к UHC, но это все уже на мороз выкинуто

Index
17.07.2018
12:56:33

A64m
17.07.2018
12:58:25
ну просто боквист в чалмерсе делал диссер вот он с тамошним компилятором и интегрировался
ну и у грина история была и после в jhc, lhc и теперь вот есть какие-то странные люди - грин-тех которые его снова мучают (с недофронтендами из гхц идриса агды)

Index
17.07.2018
13:00:42
Ну что ж, неплохо. Не умереть бы ему.

A64m
17.07.2018
13:00:57
да куда он денется, умрет конечно

Index
17.07.2018
13:02:10
Так если в GHC заменить Core на него, то не умрет.
Ну то есть да, понятно, умрет. Никто не расстанется с Core.

A64m
17.07.2018
13:02:35
не заменить
для грина надо полнопрограммный анализ делать, это для хеллоуворлдов только, и нынешняя гхц-ная скорость всех бесит, а без раздельной компиляции вообще смерть

Google

A64m
17.07.2018
13:20:40
вообще в ФП везде все плохо, но хуже всего с имплементациями, конечно

Александр
17.07.2018
13:40:59
Бегло пролистал холивор. Кажется, из Haskell опять пытаются сделать академический язык для математиков

Leonid
17.07.2018
13:42:51
/me рассмеялся продакшеном

Алексей
17.07.2018
13:43:42

kana
17.07.2018
13:45:06
разве бывает на хаскеле продакшен

A64m
17.07.2018
13:45:40

shadowjack
17.07.2018
13:46:13
Я сейчас посмотрел Control.Newtype - вроде полезно для моноидов, не?

Александр
17.07.2018
13:53:19

A64m
17.07.2018
13:55:34

Ilya
17.07.2018
13:56:55
Академики переделываются в практиков при надобности, обратное неверно

shadowjack
17.07.2018
13:57:37
Причём обе части

Ilya
17.07.2018
13:59:41

shadowjack
17.07.2018
14:03:45
Верно
Тебе предъявить академика который при надобности не переделался в практика?

Ilya
17.07.2018
14:05:26

A64m
17.07.2018
14:06:27
МАРТИН ОДЕРСКИ