
Alexander
28.03.2018
14:43:25
Prelude GHC.HeapView> getClosureRaw y
(0x00007f98351c84a0,[140291702817968,283476979897,62,283489526080],[0x00000042014ae140])

Svyatoslav
28.03.2018
14:43:26


kana
28.03.2018
14:43:46
фишка в том, что вызвать head_ не имея Partial констейта нельзя

Google

Denis
28.03.2018
14:45:19
HasError Error как-то так?

Denis
28.03.2018
14:46:56
надо IO иметь, чтобы у списка взять голову ?

Yuriy
28.03.2018
14:48:00

Alexander
28.03.2018
14:48:17
for some definition of обойти
где оно до WHNF

Denis
28.03.2018
14:48:34

Alexander
28.03.2018
14:49:22
head_ [error "Hallo!", 2::Int]

Yuriy
28.03.2018
14:49:30

Denis
28.03.2018
14:49:53

Alexander
28.03.2018
14:50:49
вообще типы/теги/аннотиции для expected failures и exceptions я бы хоел
а идеально как ликвид хаскеле, чтобы они могли убираться в каких-то случаях

Александр
28.03.2018
14:51:13
PureScript?
Там именно так

Google

kana
28.03.2018
14:51:39
да, идея оттуда, я просто только что узнал что в хаскеле тоже можно 0-арные классы

Yuriy
28.03.2018
14:53:33
headNote :: Partial => String -> [a] -> a
headNote note x = withFrozenCallStack $ fromNote note "headNote []" $ headMay x
https://www.stackage.org/haddock/lts-11.2/safe-0.3.17/Safe.html#v:headNote
правда, там Partial автоматически удовлетворяется, его не надо соблюдать
хм, кажется, withFrozenCallStack делает противоположное тому, что хотел автор

Alexander
28.03.2018
14:58:43
кстати о safe
очень странно что его не снойман написал
тот ещё хтонический ужас

Denis
28.03.2018
15:00:48

Alexander
28.03.2018
15:01:14
зачем?

Denis
28.03.2018
15:02:22
а safe кто-то юзает вообще?

Alexander
28.03.2018
15:07:02
уверен что да
кстати покажите его кто-нить кложуристам

Leonid
28.03.2018
15:10:42
я его через errors использую

Alexander
28.03.2018
15:19:45
в errors hoist-ы хорошие

Leonid
28.03.2018
15:42:06
там еще note noteT, hush, hushT

A64m
28.03.2018
15:55:19
safe это ужас от которого нас спасли линзы

Denis
28.03.2018
15:57:41

Alexander
28.03.2018
16:02:14
ну это несколько факультативные функции имхо

A64m
28.03.2018
16:07:33

Denis
28.03.2018
16:07:41

Google

A64m
28.03.2018
16:07:55
_Show

Denis
28.03.2018
16:10:20
а пример?

A64m
28.03.2018
16:13:46
а пример?
Prelude Control.Lens> "42" ^? _Show @Int
Just 42

Denis
28.03.2018
16:14:32

Imants
28.03.2018
16:14:33

Denis
28.03.2018
16:15:15
я либу видел, интересно что кто юзает и зачем

A64m
28.03.2018
16:15:24

kana
28.03.2018
16:16:14

A64m
28.03.2018
16:17:00
вероятно нет, а что ghc говорит?

kana
28.03.2018
16:17:30
в принципе это логично, что без AllowAmbiguousTypes нельзя

A64m
28.03.2018
16:18:23
вообще если что-то собираетесь юзать через TA, а без него непонятно как то это просто должно требовать включения AAT
потому что весь смысл AAT чтоб по ошибке не написали код, который без TA использовать нельзя

Imants
28.03.2018
16:23:01
я либу видел, интересно что кто юзает и зачем
topsort
https://hackage.haskell.org/package/fgl-5.6.0.0/docs/Data-Graph-Inductive-Query-DFS.html
кратчайший путь
https://hackage.haskell.org/package/fgl-5.6.0.0/docs/Data-Graph-Inductive-Query-SP.html
BFS
https://hackage.haskell.org/package/fgl-5.6.0.0/docs/Data-Graph-Inductive-Query-BFS.html

Denis
28.03.2018
16:26:37

kana
28.03.2018
16:30:07
не знаю, зачем это, когда есть линзы
захотелось просто

Imants
28.03.2018
16:34:29
Да, с малым объёмом данных. Про память ничего плохого не скажу.
Работает хорошо. Когда выбирал несколько лет назад, ничего удобнее не нашёл. Может, уже появились хорошие альтернативы.
Кажется, популярная:
https://www.stackage.org/nightly-2018-01-27/package/fgl-5.6.0.0/revdeps

Denis
28.03.2018
16:38:30
гуд
тоже смотрел на неё

Google

A64m
28.03.2018
16:40:06
с малым объемом данных я просто containers использовал

kana
28.03.2018
16:40:31

Yuriy
28.03.2018
16:44:02
вроде algebraic-graphs хорошо работает с графами
(ну, автор так утверждал)

A64m
28.03.2018
16:45:41
это же язык какой-то

Yuriy
28.03.2018
16:46:17
простите, я имел в виду https://hackage.haskell.org/package/algebraic-graphs

A64m
28.03.2018
16:48:19
там работа с графами теперь появилась? Это же был файнл таглесс едсл, которому какой-то бекенд требовался типа контейнеров или фгл-а
в generic-lens, кстати, траверсалы сделали (но вроде не зарелизили еще)

kana
28.03.2018
17:03:37
заменил пары на массивы

Aminion
28.03.2018
17:43:15
Лист компрехеншн, если ему скормить 0,0 .. 0, генерит бесконечно нули, это баг или фича?

Denis
28.03.2018
17:48:57
Фича: пока меньше или равно - генерит, как станет больше - останавливается.

A64m
28.03.2018
17:51:03
это не лист компрехеншон, а Enum, и Enum, наверное половина всех хаскельных стандартных втф-ов

Denis
28.03.2018
17:55:09
[0 .. 0] то конечный
The sequence enumFromThenTo e1 e2 e3 is the list [e1,e1 + i,e1 + 2i,…e3], where the increment, i, is e2 − e1. If the increment is positive or zero, the list terminates when the next element would be greater than e3; the list is empty if e1 > e3. If the increment is negative, the list terminates when the next element would be less than e3; the list is empty if e1 < e3.
https://www.haskell.org/onlinereport/haskell2010/haskellch6.html#x13-1310006.3.4

分解物質
28.03.2018
17:55:30
как так получилось что System.IO функции разбрасываются ексцепшенами на каждый случай вреде "нет файла"?

A64m
28.03.2018
17:55:58

分解物質
28.03.2018
17:56:26

A64m
28.03.2018
17:56:49

Google

? animufag ?
28.03.2018
17:58:44
было бы удобно в типе видеть что может произойти
ещё функции над хендлерами как в сишечке

分解物質
28.03.2018
17:59:19
почему?
1. потому что случаи вроде "нет файла" это ожидаемая, частая ситуация, которую в нужно нормально обработать
2. более канонично?

A64m
28.03.2018
17:59:48

Aminion
28.03.2018
18:00:23

? animufag ?
28.03.2018
18:00:36
выразительности суммы типов недостаточно?

分解物質
28.03.2018
18:01:12

A64m
28.03.2018
18:01:29
вполне кейс

Alexander
28.03.2018
18:01:35
@A64m_qb0 а для такого Applicative m => Maybe a -> e -> ExceptT e m a в линзах что есть?

A64m
28.03.2018
18:02:25
так сразу не могу сказать

Leonid
28.03.2018
18:02:53
tryIO

分解物質
28.03.2018
18:03:02
вполне кейс
почему? разве не правильнее ошибки держать в результате и заставлять их обрабатывать?
в хаскеле для этого всё есть под рукой

A64m
28.03.2018
18:04:16
нет, нету

? animufag ?
28.03.2018
18:04:34
да поясни

A64m
28.03.2018
18:04:36
в хаскеле проверяемые экспешены невозможны

Alexander
28.03.2018
18:05:42
чего там выше очередные генерогенные рекорды?