@haskellru

Страница 1489 из 1551
A64m
26.09.2018
16:22:42
т.е. вам не нарвится что призма - это траверсал?

Yuriy
26.09.2018
16:22:51
да

A64m
26.09.2018
16:22:58
но почему?

Yuriy
26.09.2018
16:23:05
в частности, это тоже

Google
Yuriy
26.09.2018
16:31:35
траверсал может найти 2 результата, а призма не может

поэтому призма не может зависеть от Semigroup

A64m
26.09.2018
16:33:48
она и не зависит, зависит сверка, как иначе сворачивать-то

траверсал может найти 2 результата, а призма не может
траверсал может не найти ни одного результата, призма тоже

kana
26.09.2018
16:35:25
то, что призма как-то завязана на траверсал, выглядит как деталь реализации линз, протекшей абстракцией

Yuriy
26.09.2018
16:35:46
нужен {-# LANGUAGE NoHarmfulInstances #-}

A64m
26.09.2018
16:36:53
нету, вы применили свертку к ней

Yuriy
26.09.2018
16:37:09
траверсал может не найти ни одного результата, призма тоже
это опревергает случай 2 элементов? может, вы хотите сказать, что Maybe — частный случай []?

A64m
26.09.2018
16:37:34
поскольку призма может указывать, а может не указывать на что-то с инстансом моноида - свертка удалась

не правда, применили

lens, mezzolens: λ> Nothing ^. _Just :: String "" optics: λ> Nothing ^. _Just <interactive>:4:1: error: • No instance for (Is A_Prism A_Getter) arising from a use of ‘^.’

Google
Yuriy
26.09.2018
16:38:34
так это же код с ошибкой

A64m
26.09.2018
16:39:01
Yuriy
26.09.2018
16:39:44
нет, я применил view, но не fold

A64m
26.09.2018
16:40:16
так это же код с ошибкой
если вы считаете что код в котором вы применяете свертку "с ошибкой" - это не значит, что вы свертку не применили

нет, я применил view, но не fold
ну fold к оптике не применяется, там другая функция для этого определена

Yuriy
26.09.2018
16:41:37
поскольку призма может указывать, а может не указывать на что-то с инстансом моноида - свертка удалась
не следует из Maybe требование свёртки. даже instance Foldable Maybe не использует Semigroup, а только mempty, а значит беззаконный

alexknvl
26.09.2018
16:42:19
но не иметь instance Traversable Maybe было бы очень грустно

A64m
26.09.2018
16:42:30
чего?

A64m
26.09.2018
16:44:30
я бы сказал, что иерархия оптики - обязательная фича, все либы без нее не взлетели

Yuriy
26.09.2018
16:44:32
но не иметь instance Traversable Maybe было бы очень грустно
не согласен. хоть один пример, пожалуйста

A64m
26.09.2018
16:45:06
но любая фича "иногда вредная", с помощью чего угодно можно написать код, который вы не хотели писать

т.е. буквально, нету вообще никаких исключений

Pineapple
26.09.2018
16:45:51
data Foo a = Foo { field :: Map Int (Maybe a), .. } deriving (Foldable,Traversable)

A64m
26.09.2018
16:46:21
и писать не тот код, который вы хотели с помощью функций про которые вы не знаете - вообще очень легко

Pineapple
26.09.2018
16:46:34
А дальше плач и скрежет зубовный без инстансов для Maybe

С парами та же история, кстати

Yuriy
26.09.2018
16:47:04
я бы сказал, что иерархия оптики - обязательная фича, все либы без нее не взлетели
но они таки были реализованы. а не взлететь можно по множеству причин

A64m
26.09.2018
16:47:32
ну, говорить что инстансы для пар не нужны, это следуюший уровень после говорения что id и const не нужны

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

Google
A64m
26.09.2018
16:49:07
без "подтипирования" оптики слишком убого все, и для автора библиотеки и для пользователя

это проблема всех этих liftM и liftA и sequence sequenceA только умноженная в 100 раз

A64m
26.09.2018
16:52:33
liftM

Yuriy
26.09.2018
16:53:54
можно им просто не пользоваться. вреда такого не приносят, как сворачивание пар

A64m
26.09.2018
16:54:46
так приходилось пользоваться, пока "подтипирование" монад и аппликативов не ввели

но если до AMP дублирование кода еще можно было потянуть, то с гексированием кода уже не так весело

Yuriy
26.09.2018
16:55:59
так приходилось пользоваться, пока "подтипирование" монад и аппликативов не ввели
из этого следует, что любое подтипирование хорошо? вы сегодня король силлогизмов!

A64m
26.09.2018
16:56:14
в обоих случаях примерно одинаковое подтипирование же

это буквально одна и та же проблема в разных либах просто

не было бы ее, и AMP бы не делали

Alexander
27.09.2018
10:09:18
а new-dist уже завезли?

чот не удобно, приходится cabal sdist делать, которому нужно старым методом зависимости

A64m
27.09.2018
10:21:18
да

Anton
27.09.2018
10:53:44
Сегодня аж пригодился guide.aelve.com, посмотреть про CPP магию кабала

Alexander
27.09.2018
11:16:39
где там магия?

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

Anton
27.09.2018
11:17:08
Ага, наизусть то не помню уже

а по манам кабала не гуглится

Google
Alexander
27.09.2018
11:18:24
оно грепается по dist/build

если знать что оно вообще есть

A64m
27.09.2018
11:38:47
хорошие слайды у доклада по generic-lens

Alexander
27.09.2018
12:30:06
"да" как в завезли?

A64m
27.09.2018
12:32:14
да, завезли в 2.4

(я, правда, им не пользовался, может там какие-то подводные грабли есть)

Yuriy
27.09.2018
12:36:24
хорошие слайды у доклада по generic-lens
где можно на них посмотреть?

A64m
27.09.2018
12:38:35
https://github.com/kcsongor/talks/blob/master/ICFP18/generic-lens.pdf

Anton
27.09.2018
20:01:02
Как понимаю у cabal new нет аналога stack —file-watch?

Anatolii
27.09.2018
20:04:57
Как понимаю у cabal new нет аналога stack —file-watch?
я вот так у себя делаю nix-shell --run 'ghcid -c "cabal new-repl"'

Anton
27.09.2018
20:05:18
Anatolii
27.09.2018
20:05:28
я уже не помню что делает —flie-watch

давно стаком не пользуюсь

Anton
27.09.2018
20:05:38
Ребилдит, если увидел изменения

Anatolii
27.09.2018
20:05:44
но оно при сохранении пересобирает весь проект

да

Anton
27.09.2018
20:05:55
Спасибо, сча попробуем

Anatolii
27.09.2018
20:06:08
но это надо ставить ghcid

Anton
27.09.2018
20:06:11
как раз при переезде со стака на никс надо

Google
Anton
27.09.2018
20:06:21
ну так никс притащит ghcid

Anatolii
27.09.2018
20:06:30
ага

Anton
27.09.2018
20:12:16
ага
оно работает лучше стака раза в пять, я даже переключиться не успеваю между редактором и консолью

Anton
27.09.2018
20:13:52
стак так отправится прямиком в аналы истории

Alexander
27.09.2018
20:16:26
/me задумался, а не бросить ли к чертям стек в последнем проекте

если там все равно никс, то даже макосеры не будут страдать

Anatolii
27.09.2018
20:18:38
товарищи,а как мне попробовать переключить версию компилятора в никс проекте быстрее всего?

то что я нахожу - мне надо много правок в свой никс файл вносить

Alexander
27.09.2018
20:19:37
я вроде только версию ghc менял в build-inputs

но это не точно

Anatolii
27.09.2018
20:20:20
https://github.com/Gabriel439/haskell-nix/blob/master/project1/README.md#changing-the-compiler

я вот такой способ нашел

Alexander
27.09.2018
20:21:40
я в shell.nix в buildInputs только haskell.compiler.ghcXXX менял

но может я что не то делал

Anton
27.09.2018
20:21:58
Alexander
27.09.2018
20:22:20
но ради них стек держать не очень хочется

и stackage2niix

Anton
27.09.2018
20:24:54
товарищи,а как мне попробовать переключить версию компилятора в никс проекте быстрее всего?
я переключал только заменой haskellPackages в никс файлах на haskell.packages.ghc<xxx>

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