@haskellru

Страница 664 из 1551
? animufag ?
10.12.2017
17:05:01
это чтобы как раньше было на пурсе – порезать ио? а coerce чтобы обратно к ио возвращаться?

Index
10.12.2017
17:07:23
Это не только порезать, но и в рантайме манипулировать где какая реализация используется. coerce для того чтоб можно было расширять множество эффектов в рантайме По сути это вариация на тему ReaderT IO

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

? animufag ?
10.12.2017
17:09:01
ох, ну хоть чуть чуть угадал то есть в тестах можно заменять интернет запросы на приготовленные ответы?

Google
Index
10.12.2017
17:09:11
Это тоже можно

Aleksey
10.12.2017
17:09:16
Index
10.12.2017
17:09:33
В рантайме можешь решить чем заменять

Aleksey
10.12.2017
17:09:34
или ты имеешь в виду overrideCap?

Index
10.12.2017
17:09:40
Его, да

Aleksey
10.12.2017
17:09:57
Хмм. Вот это неплохо, да

Index
10.12.2017
17:13:35
Вообще эта штука решает проблему когерентности в первую очередь. Если просто словарики таскать, то возможна ситуация, что подменишь логгер, а в других эффектах (бд например) останется старый логгер в замыкании

С этим фреймворком там всегда делается lookup ровно перед использованием (поэтому late bound)

Такой fixed point над ReaderT со словариками

Надо будет это потом еще побенчмаркать и возможно заменить Map на unboxed Vector, тогда даже оверхед будет нормальный.

https://github.com/int-index/caps

melancholiac
10.12.2017
17:58:18
как правильно подружить пулл потоков и древовидно рекурсивные функции?

? animufag ?
10.12.2017
18:09:03
типа сделать подобную ей структуру и распихать TVar из stm. только не знаю насколько ок рекурсивные tvar

Google
? animufag ?
10.12.2017
18:11:41
хотя в таком случае потоки могут иметь неактуальные tvar там вообще подразумевается изменение структуры или ты её просто собираешься фолдить эффективно по потокам?

kana
10.12.2017
18:13:33
имея такое data (a :: * -> *) |> b class Member (t :: * -> *) r instance Member t (t |> r) instance Member t r => Member t (t' |> r) testReader :: Eff (Reader Int |> Void) Int testReader = do x <- ask y <- ask pure $ x + y пишет • Overlapping instances for Member (Reader Int) (Reader Int |> Void) arising from a use of ‘ask’ Matching instances: instance Member t (t |> r) instance Member t r => Member t (t' |> r) как это возможно, как они могут оверлапиться вообще?

второй инстанс на Reader Int |> Void невозможен, ведь Reader Int никак не может быть внутри Void, возможен только первый инстанс, откуда оверлапинг

предполагается, что кто-то может сделать Reader Int |> Reader Int |> Void?

думаю, этот тайпкласс вполне реально переписать на семейство

лол, да, на семействах все ок работает

type family t `Elem` ts :: Bool where _ `Elem` Void = False t `Elem` (t |> r) = True t `Elem` (t' |> r) = t `Elem` r type Member t r = t `Elem` r ~ True

может кто объяснить, в чем разница? Почему на тайпклассах не работает, а на семействах работает? Полагаю, причина в том же, почему не работает открытый Elem (type family без where), но тоже пока сформулировать четко не могу

A64m
10.12.2017
18:27:42
потому что для закрытых семейств оверлап и так разрешен

где оверлап вроде понятно

Index
10.12.2017
18:29:03
В закрытых clauses по очереди перебираются и оверлап ок, в открытых оверлап приводит к конфликту и фейлу.

kana
10.12.2017
18:31:02
да, это я понял, но где именно оверлап в первом случае? В возможности Reader Int |> Reader Int |> Void?

A64m
10.12.2017
18:31:51
оверлап потому, что в инстанс хэд один и тот же конструктор

а по первому параметру для любого конструктора инстанс

kana
10.12.2017
18:33:32
там не для любого же, в первом и во втором аргументе они должны быть одинаковыми

Index
10.12.2017
18:34:17
t и t' тоже одинаковые заматчат

A64m
10.12.2017
18:34:30
эта одинаковость контекст же, который для разрешения не используется

Index
10.12.2017
18:35:49
Member t (t |> r) Member t (t' |> r) Второе строго более общее, чем первое

И оверлаппит

kana
10.12.2017
18:36:16
хм, я понял, спасибо

Google
kana
10.12.2017
18:36:58
я так понимаю, раньше это решение не вызывало ошибку, потому что подобный код есть в первых версиях ext-effects

Index
10.12.2017
18:37:16
Всегда должен был вызывать

A64m
10.12.2017
18:37:19
там оверлап разрешен просто

без включенного оверлапа вообще мало что из такого олегинга работает

kana
10.12.2017
18:37:56
а, нашел, да {-# LANGUAGE OverlappingInstances #-}

Index
10.12.2017
18:38:03
Если там класс, а не семья типов, то могли быть OverlappingInstances

С семьями типов никак и никогда такое не работало с открытыми

A64m
10.12.2017
18:39:29
ну потому что для классов от оверлапов могут словари перепутаться, а в случае семейств - сегфолт, с чем в хаскеле посильнее борются

Index
10.12.2017
19:08:22
всё так

(по крайней мере SPJ об этом с такого угла говорил)

Vitaly
10.12.2017
19:53:20
Бедный, бедный Taylor Fausak… https://twitter.com/taylorfausak/status/939937217685966848

kana
10.12.2017
19:54:30
в хаскель-комьюнити какая-то санта-барбара

Alexander
10.12.2017
19:54:53
> blocked me on both GitHub and Twitter for no apparent reason. > no apparent reason

блочить плохо, но какой там к черту no apparent reason

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

Vitaly
10.12.2017
19:56:37
Ты подписался на него, чтобы поддержать, надеюсь?

Вообще, самое удивительное, что у нас до сих пор один Haskell.

Боюсь, это только влияние SPJ.

Alexander
10.12.2017
19:58:59
нет, я не собираюсь вписываться в их споры, ни на чьей стороне

я подписался, чтобы видеть что пишут и формировать более полное мнение

Google
Vitaly
10.12.2017
19:59:57
I am on nobody's side, because nobody is on my side!

Alexander
10.12.2017
20:00:04
вот что-то такое

мне если честно бомбит со снойманитов

у меня такое ощущение, что ни один из разговоров с ними, где их мнение не принималось полностью не заканчивалось хорошо

там такой my way or the highway что я даже hvr понимаю (хотя и не одобряю бан на гитхабе, это вообще за гранью добра и зла)

Vitaly
10.12.2017
20:02:09
Да, я в общем согласен.

Alexander
10.12.2017
20:02:18
даже, ок, я вижу что вы говорите и тут вы правы, мы готовы поменять, воспринимается как "о, вы же видите что мы правы во всем, и теперь делайте как надо"

они по очереди создают баги во всех проектах, реддите и прочем до конца

причем в твиттерах ещё идёт их пассивно-агрессивный стиль, или как это зовется

с одной стороны и не ругают и все выглядит корректно, с другой ужасный blaming

Admin
ERROR: S client not available

Alexander
10.12.2017
20:03:38
и им так можно

а если что-то против, то все CoC, вызов SPJ и т.п.

выговорился

Vitaly
10.12.2017
20:04:23
Спасибо!

Alexander
10.12.2017
20:05:01
SPJ жалко :)

ладно, а теперь пора спать, а то опять в интернетах все правы, а я читать за ними не успеваю

Vitaly
10.12.2017
20:06:28
Я не думаю, что он особенно страдает по этому поводу

Alexander
10.12.2017
20:07:54
надеюсь, до него этот ад особо не доходит

A64m
10.12.2017
20:12:55
Вообще, самое удивительное, что у нас до сих пор один Haskell.
уже два, но второй довольно небольшой и слабый (и, вероятно, не жилец)

Google
Vitaly
10.12.2017
20:14:08
Это вы про что? Так-то по ходу много возникало, но всё отваливалось быстро

A64m
10.12.2017
20:14:58
про eta

Denis
10.12.2017
20:17:18
Вообще, самое удивительное, что у нас до сих пор один Haskell.
Как было с nodejs?) Ну они потом слились опять в одно

melancholiac
10.12.2017
20:19:14
почему diffClockTimes дает отрицательное значение пикосекунд?

A64m
10.12.2017
20:19:48
поскольку хаскель это, фактически ghc где-то с конца 90-х, то вторым хаскелем можно называть только гхц-форк, а все прочее это так, хаскелеподобные языки, которые иной раз пытаются быть хаскелем

Vitaly
10.12.2017
20:20:08
Да, всё так

A64m
10.12.2017
20:21:21
если сделать из гофера хаскель практически получилось, но он через несколько лет после того и закончился, то у следующей пары попыток особо ничего не вышло

melancholiac
10.12.2017
20:35:55
Pig
10.12.2017
20:36:18
Потому что есть знак

melancholiac
10.12.2017
20:36:46
:/

Leonid
10.12.2017
20:47:54
https://www.reddit.com/r/haskell/comments/7is4m5/what_popular_databases_are_written_in_haskell/ https://www.reddit.com/r/haskell/comments/7iumzb/haskell_mutable_collections_low_performance_vs/ ну что за день

Ну и всем радоваться, у hie есть логотип....

A64m
10.12.2017
20:52:33
радости немного мешает льющаяся из глаз кровь

очень смешно, конечно, но с другой стороны как писать такой код на хаскеле никто особо не учит https://i.imgur.com/xmbQH51.png

? animufag ?
10.12.2017
20:55:14
три буквы для названий. как-то щедро

Denis
10.12.2017
20:57:06
https://www.dcc.fc.up.pt/~pbv/aulas/tapf/slides/stmonad.html

A64m
10.12.2017
20:57:12
задепрекейтили бы array уже

? animufag ?
10.12.2017
20:57:42
зачем` _ <- `?

Denis
10.12.2017
20:57:50
задепрекейтили бы array уже
и что вместо него вектор?

зачем` _ <- `?
это типа >>

A64m
10.12.2017
20:57:58
да

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