
Index
31.07.2018
16:05:05

Aleksey
31.07.2018
16:05:32
странное

Maxim
31.07.2018
16:06:54

Index
31.07.2018
16:07:00
да

Google

Yuriy
31.07.2018
16:07:21

Index
31.07.2018
16:07:35
Это в паттернах
В вызовах такого нет

Terminator
31.07.2018
16:08:29
@dtulyakov будет жить. Поприветствуем!

Yuriy
31.07.2018
16:08:32
а, ну, человек этого не хочет на самом деле

Pig
31.07.2018
16:09:14
А почему бы просто не объяснить новичку что у Nothing и Just разные типы?

Aleksey
31.07.2018
16:10:06
Скучно же

Index
31.07.2018
16:14:16
в h аргумент Int -> Maybe Int, в h2 аргумент Maybe Int
вопрос был про то, как объединить эти функции

Алексей Ayaye :)
31.07.2018
16:20:46
всё-таки интересно, зачем. ведь конструктор либо явно при вызове h задается и тогда можно его и использовать. либо приходит как параметр, но почему там же и значение типа Maybe Int не построить?

Alexander
31.07.2018
16:43:47
в любом случае если обощить тип так чтобы и Maybe a и a->Maybe a подходило, то проматчить по реализации функции (Just) мы не сможем

Google

Alexander
31.07.2018
16:46:32
кот в wai хорошо разбирается?
у меня неочевидный вопрос есть

Lazzlo
31.07.2018
17:01:46


Alexander
31.07.2018
17:26:38
а с (->) a она что делать будет?
кайнд подходит
но я повторюсь, x <$ m, делает максимально похожее
оно же fmap (const x) m
для любого функтора все значения внутри будут заменены на твое если их можно заменить
соответственно для SomeThing тоже будет работать если ты derive Functor сделаешь

Lazzlo
31.07.2018
17:28:43

Alexander
31.07.2018
17:29:02
что не включал?

Lazzlo
31.07.2018
17:29:13
derive Functor

Alexander
31.07.2018
17:29:28
можешь руками инстанс написать.. просто так печатать меньше

Lazzlo
31.07.2018
17:30:51
ну да, под включить я имел ввиду дописать derive Functor, но даже на это мне не хватило времени проверить, так как я уже собирался уходить

Alexander
31.07.2018
17:33:56
в общем по непримененному к аргументам конструктору матчить не получится, т.к это функция
по Just{} конструктор и не важно какие аргументы - можно, и так заработает
сделать код, который будет работать с разными типами данных - нужна дополнительная информация о том, как это должно происходить
например математическая структура и Functor подходит
можно использовать Generic и смотреть, что у тебя ожидаемая структура типв

Google

Alexander
31.07.2018
17:35:52
и писать generic метод (никогда таким не занимался)

Lazzlo
31.07.2018
17:36:36
Понял, спасибо большое!

Ilya
31.07.2018
18:30:32
правда у меня не получилось избежать лишних аннотаций типов, применение выходит довольно громоздким

Aleksey
31.07.2018
18:54:46
Тайпкласс то получится уж больно похожий на Functor

Alexander
31.07.2018
19:39:24
не не, он хочет чтобы и (a -> f a) и f a можно было матчить одновременно, если предположить что запись корректна
а так да - просто функтор

Ilya
31.07.2018
19:56:50

Admin
ERROR: S client not available

Alexander
31.07.2018
20:07:41

Ilya
31.07.2018
20:13:08
h должна работать "со штуками кайндом * -> *" а значить матчить там нечего

Алексей Ayaye :)
31.07.2018
20:14:49
по аналогии с ооп это какая-то виртуализация конструктора, которая не нужна, потому что в момент вызова конкретный конструктор известен.

Ilya
31.07.2018
20:16:58


Alexander
31.07.2018
20:25:04
имхо

Ilya
31.07.2018
20:25:22
окей, может быть

Alexander
31.07.2018
20:25:35
вот как эта функция будет работать с (->) а?
или Const b a

Google

Ilya
31.07.2018
20:26:25
(если через классы делать)

Alexander
31.07.2018
20:26:39
или T a = N l U a l Q a l P a a

Слава
31.07.2018
20:28:08

Ilya
31.07.2018
20:28:33
тут нет дилеммы

Alexander
31.07.2018
20:28:45
как, что делать если там Q?
или P?

Ilya
31.07.2018
20:29:53
хз, мне интереснее что делать, если передали "Just что-то" а не "Just"
раз можем Nothing передать, значит можем и "Just что-то"
или P?
проверку типов завалим пускай