@haskellru

Страница 1549 из 1551
Denis
26.10.2018
17:48:01
а вообще я такое еще нашел https://www.stackage.org/haddock/lts-12.14/base-4.11.1.0/Data-Semigroup.html#t:ArgMin

Alexander
26.10.2018
17:48:08
не важно, главное тайпчекнулось

A64m
26.10.2018
18:02:05
вообще, то что в base есть NonEmpty, а Foldable1 нету - это идиотизм

Google
Alexander
26.10.2018
18:03:34
Foldable1 это как другие 1, типа Show1 ?

Terminator
26.10.2018
18:05:08
Mr. W будет жить. Поприветствуем!

Denis
26.10.2018
18:06:42
getOption . foldMap (Option . Just . Min) $ [1..10] https://www.stackage.org/haddock/lts-12.14/base-4.11.1.0/Data-Semigroup.html#t:Option

Ideally, this type would not exist at all and we would just fix the Monoid instance of Maybe

A64m
26.10.2018
18:07:05
так-то это minimumOf (traverse . traverse) просто

Denis
26.10.2018
18:09:39
c линзами вообще хватит minimumOf traverse [1..10]

Foldable1 это как другие 1, типа Show1 ?
это для полугруппы вроде

A64m
26.10.2018
18:13:32
c линзами вообще хватит minimumOf traverse [1..10]
в задании список вида [Just 7, Just 2]

если через коэрс имплементировать то foo :: forall a. Ord a => [Maybe a] -> Maybe a foo = coerce (mconcat :: [Option (Min a)] -> Option (Min a))

Alexander
26.10.2018
18:17:23
getOption . foldMap (Option . Just . Min) $ [1..10] https://www.stackage.org/haddock/lts-12.14/base-4.11.1.0/Data-Semigroup.html#t:Option
coerce (fold :: [Option (Min Integer)] -> Option (Min Integer)) [Just 1, Just 2] :: Maybe Integer

т.е. fold @@ (Option Min)

A64m
26.10.2018
18:18:55
fold @@ (Option . Min)

Alexander
26.10.2018
18:19:40
да

Google
Alexander
26.10.2018
18:20:01
или Compose Option Min

если не поддерживать свой парсер внутри ( )

A64m
26.10.2018
18:20:56
а не надо свой парсер

имеется в виде просто композиция конструкторов

Alexander
26.10.2018
18:21:20
а

да так кстати даже круче

A64m
26.10.2018
18:21:46
но это более сложная фича, чем та где конструктор типа указывается

Alexander
26.10.2018
18:21:48
чего-то я все думал, что там на уровне типов штука

A64m
26.10.2018
18:21:49
конечно

там конструкторы только чтоб тип получить, они в рантайме то не выполняются

Alexander
26.10.2018
18:28:12
естественно

A64m
26.10.2018
18:28:26
эту фичу, в принципе, можно до любого Iso расширить, если допустить рантаймовые расходы

Alexander
26.10.2018
18:28:35
а почему так сложнее, если с плагином?

и Rep a ~ Rep b

A64m
26.10.2018
18:29:02
ну, в смысле репорта ошибок сложнее

программист может написать любую функцию и что-то ожидать от этого

плохого ничего не будет что не надо не скстится

но непонятно

Alexander
26.10.2018
18:29:56
а

A64m
26.10.2018
18:30:20
с указанием конструкторов типов-то особо не развернуться

Google
Alexander
26.10.2018
18:31:34
обманутые ожидание это опасно

как с лин типами может быть

тут правда фича не такая пафосная

Denis
26.10.2018
18:33:08
по виду это же меньше getOption . foldMap (Option . fmap Min) $ [Just 7, Just 2]

Alexander
26.10.2018
18:33:28
ну у меня сработало и выдало 1

A64m
26.10.2018
18:33:39
я когда эту фичу придумывал, сначал предполагал конструирование типа именно кодом, который не выполняется, но позволяет схему типа получить т.е. вариант с сортировкой был sort @@ map Down но птом решил, что с автоматикой вместо гибкости лучше будет

Alexander
26.10.2018
18:34:08
coerce слишком полиморфная поэтому нужно лишнее писать

A64m
26.10.2018
18:34:37
foo :: forall a. Ord a => [Maybe a] -> Maybe a foo = coerce (mconcat @(Option (Min a)))

Alexander
26.10.2018
18:34:39
кстати можно писать и меньше, я многобуков написал чтобы точно работало

а фолду ещё бы пришлось функтор задавать через @ _

чот не работает
я из ghci скопировал где сработало, ничего не знаю

A64m
26.10.2018
18:35:51
ну или foo :: forall a. (Foldable f, Ord a) => f (Maybe a) -> Maybe a foo = coerce (fold @(Option (Min a)))

Denis
26.10.2018
18:35:56
Kirill
26.10.2018
19:22:56
@lightgreen залез тут на страничку "друзей Rust" и там помимо Galois ещё и Wire?

Artyom
26.10.2018
19:23:08
А что за страничка?

У нас на расте крипта написана и протокол весь

И воркшопы проводятся каждые N месяцев

И клиент даже есть lightweight на расте, но он умер

Google
Kirill
26.10.2018
19:25:33
да https://www.rust-lang.org/en-US/friends.html про протокол написано, да так-то это, конечно, offtop

Alexander
26.10.2018
19:32:19
@a66ath получилось все?

Abbath
26.10.2018
19:32:43
Alexander
26.10.2018
19:33:06
в черногории же уже холодно?

Abbath
26.10.2018
19:33:14
Я не там

Alexander
26.10.2018
19:33:48
ты же сказал что в Баре

Abbath
26.10.2018
19:34:33
Лол

В пабе

Пиво употребляю

Ловлю пик Балмера

Alexander
26.10.2018
19:38:10
/me не шарит

kana
26.10.2018
20:20:57
а если линзы, которые кастят изоморфные типы?

Artyom
26.10.2018
20:21:08
Iso?

Control.Lens.Iso

kana
26.10.2018
20:21:34
типа берут Rep от генерика, выкидывают весь мусор, приводят к нормальной форме с какой-нибудь сортировкой, а потом кастят

Artyom
26.10.2018
20:23:44
generic-lens тогда мб

Ну то есть у них такое может быть имплементировано, но я не уверен

A64m
26.10.2018
20:34:53
а если линзы, которые кастят изоморфные типы?
конвертируют или именно кастят?

kana
26.10.2018
20:35:41
конвертируют, потому что порядок элементов суммы может не совпадать, главное чтобы мощности типов были одинаковы не обязательно даже общий случай, хотя бы простенькие нерекурсивные типы

A64m
26.10.2018
20:37:11
ну упомянутые generic-lens конвертируют с сабтайпингом даже

Google
A64m
26.10.2018
20:37:43
т.е. рекорд с большим числом полей можно конвертировать в рекорд с меньшим

kana
26.10.2018
20:38:03
а как они при этом решают проблему, когда изоморфизмов несколько

например (Int, Int) в { a :: Int, b :: Int }

ну наверное просто подряд идут, изучу

A64m
26.10.2018
20:38:57
по порядку полей, наверное

ну да > injectSub (Foo 1 2) :: (Int, Int) (1,2)

Dmitry
27.10.2018
05:19:21
https://dmkpress.com/catalog/computer/programming/functional/978-5-97060-694-0/

Брать?

"По мнению пионера программного обеспечения Алана Кея, смена парадигмы может дать 80 баллов IQ"

(надеюсь, 80 баллов прироста)

Vitaly
27.10.2018
05:25:59
Брать

Alexander
27.10.2018
06:33:08
сначала английскую, потом эту

Aleksey
27.10.2018
06:58:52
Английская сильно дороже. А тут в бумаге за 800р. Даже если перевод где-то споткнётся

ДМК всё же стараются, чтобы книги получались дешёвыми. И им пока удаётся

Igor
27.10.2018
08:18:21
https://dmkpress.com/catalog/computer/programming/functional/978-5-97060-694-0/
Блин, там что только почтой рф?

Dmitry
27.10.2018
08:40:29
Мне обычно так доставляют

Но они отзывчивые

Предлагаю с ними связаться и уточнить

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