
Евгений
29.08.2018
07:52:43

Oleg
29.08.2018
07:59:09

Евгений
29.08.2018
08:15:18
Ну, модуль не сущность первого порядка, если у тебя что-то параметризовано 'a, то не получится туда функтор запихнуть.
Мне кажется, что модули больше на омегу похожи

Google

Pavel
29.08.2018
08:24:11
@elemir90 @odomontois время от времени хочется спросить вас: «Откуда вы все эти понятия и термины взяли и как они в практическом применении вам помогают решать задачи» ?

Евгений
29.08.2018
08:25:18
Я просто игрался со стандарт ML'ем лет 12 назад. Никак не помогают, я даже не программистом работаю

Pavel
29.08.2018
08:27:13

Евгений
29.08.2018
08:27:51
Лучше в @haskell_blah, не люблю когда в личку пишут

A64m
29.08.2018
08:32:17

Misha
29.08.2018
08:35:53
а кто видел criterion, который делает вот так:
benchmarking STM IxSet big/select field 3
time 237.0 ms (199.7 ms .. 261.0 ms)
0.996 R² (0.994 R² .. 1.000 R²)
mean NaN s (NaN s .. NaN s)
std dev 0.0 s (0.0 s .. 0.0 s)
variance introduced by outliers: -9223372036854775808% (severely inflated)
stm-ix-benchmarks: Statistics.Quantile.weightedAvg: Sample is empty
это как понимать?

Dmitry
29.08.2018
08:36:43
У меня такое бывало, когда комп время обновлял
Отматывал назад

Misha
29.08.2018
08:38:26
хм
в моем случае это вполне себе воспроизводимый результат

kana
29.08.2018
08:55:50
@A64m_qb0 ArgumentDo отклонили? Почему?

A64m
29.08.2018
08:56:28
чего отклонили?

Google

kana
29.08.2018
08:57:18
тут вроде closed - https://ghc.haskell.org/trac/ghc/ticket/10843
(мб конечно closed как релазиовано)
на 8.4 все еще не работает

A64m
29.08.2018
08:59:08
https://ghc.haskell.org/trac/ghc/ticket/10843#comment:46
есть в 8.6

Misha
29.08.2018
09:02:31
какая-то унылая фича, экономия одного $ что ли?

A64m
29.08.2018
09:03:35
да

Alexander
29.08.2018
09:11:45
на самом же деле не одного $
а просто меньше лиспа
вместо
lisp (is here)
(and there)
(and everywhere)
без скобочек писать
одним $ там не выправить
если я правильно arguments do помню

Maxim
29.08.2018
09:14:01
То есть ifM теперь можно чуть красивее писать?
(щас кто-нибудь скажет что он не нужен)

Pineapple
29.08.2018
09:14:38
Не нужен, кнонечно

Maxim
29.08.2018
09:15:04
А почему?

Alexander
29.08.2018
09:15:15
не нужен

Misha
29.08.2018
09:15:27
Потому что есть when?

Dmitry
29.08.2018
09:15:45
whenM

Pineapple
29.08.2018
09:16:03
predicate >>= \case
True → wheTrue
False → whenFalse

kana
29.08.2018
09:16:35
ой нет, матчить по булу - последнее дело

Google

Dmitry
29.08.2018
09:16:54
А чего бы нет?

Maxim
29.08.2018
09:17:20
whenM
Как будто в when / whenM можно запихать блок else

Ilya
29.08.2018
09:17:44
матчить стандартные типы - последнее дело:)

Maxim
29.08.2018
09:17:44
Меня вот все ещё почему-то подсознательно смущает guard, хотя я понимаю как он работает

Pineapple
29.08.2018
09:18:21

Ilya
29.08.2018
09:18:34
either, maybe, foldr, first/second

A64m
29.08.2018
09:19:37
если я правильно arguments do помню
правильно
Prelude> foo a b c = c
Prelude> :{
Prelude| foo do 1
Prelude| do 2
Prelude| do 3
Prelude| :}
<interactive>:3:5: error:
Unexpected do block in function application:
do 1
You could write it with parentheses
Or perhaps you meant to enable BlockArguments?
Prelude> :set -XBlockArguments
Prelude> :{
Prelude| foo do 1
Prelude| do 2
Prelude| do 3
Prelude| :}
3

Alexander
29.08.2018
09:20:25
на самом деле для catch bracket и подобных функций удобно может быть
меня эти скобки бесили слегка
и даже делал flip catch smallHandler $ do ...
только ради того, чтобы удобно большой блок написать

Pineapple
29.08.2018
09:21:10

Ilya
29.08.2018
09:21:58
Ну case конечно вербознее

Dmitry
29.08.2018
09:23:07
И линейнее

kana
29.08.2018
09:23:13
@xgrommx не видел еще генерацию рекурсоров через генерики?

Anatolii
29.08.2018
09:28:32

kana
29.08.2018
09:29:30

Alexander
29.08.2018
09:29:55
foo
do f 1
do f 2
do f 3
вроде же?

A64m
29.08.2018
09:30:52

Google

A64m
29.08.2018
09:31:47

kana
29.08.2018
09:32:40
хм, выглядит как будто роль do расширили

A64m
29.08.2018
09:32:49
не только
к примеру такое сработает
> concatMap \case {Just x -> [x]; _ -> []} [Just 1, Nothing]
ну и такое
Prelude> :{
Prelude| concatMap \case
Prelude| Just x -> [x]
Prelude| Nothing -> []
Prelude| [Just 1, Nothing]
Prelude| :}
[1]

Maxim
29.08.2018
09:35:40
do вроде всегда мог без монад работать. Если строка одна, то и бинда нет, значит монада не нужна

A64m
29.08.2018
09:36:10
это-то да

Denis
29.08.2018
10:03:23

Admin
ERROR: S client not available

Yuriy
29.08.2018
10:10:13

kana
29.08.2018
10:14:46

Александр
29.08.2018
10:15:37
Чат, говорят, что вот этот код работает в 8.0.2 и не работает в 8.2.2 (функция dupChan ведет себя неверно):
https://github.com/crabmusket/haskell-simple-concurrency/blob/master/src/DuplicatingChannels.hs
Кто-нибудь в курсе?

Denis
29.08.2018
10:15:47

Misha
29.08.2018
10:17:11

kana
29.08.2018
10:18:04
меня кстати давно мучает мысль, что фраза "через рекурсор/катаморфизм можно выразить любую функцию" не верна
типа в общем случае это будет скорее f . cata g вместо cata g

Denis
29.08.2018
10:19:23

Misha
29.08.2018
10:20:52

Denis
29.08.2018
10:22:13
@kana_sama
что знаю из последнего
https://github.com/Lysxia/generic-recursion-schemes
https://github.com/frerich/catamorphism

Google

kana
29.08.2018
10:22:59

Denis
29.08.2018
10:23:38

kana
29.08.2018
10:23:46
нет, именно кату
ну там было более специализированное утверждение "через foldr/reduceRight можно выразить все для работы со списком"

Mikhail
29.08.2018
10:25:17
Подскажите, а как называют софт для тестирования алгоритмов на правильность ( например, для соревновательного программирования )?
И есть ли что-то подобное на Хаскелле?

Alexander
29.08.2018
10:27:17
на хаскеле есть hspec, например

Denis
29.08.2018
10:27:56

kana
29.08.2018
10:28:23
например если мы сворачиваем в пару для стейта, а вернуть нужно первый элемент пары

Denis
29.08.2018
10:29:13

kana
29.08.2018
10:29:26
как
в трансдьюсерах типа сделали для этого финализирующую функцию с одним аргументов, которая вызывается в конце
какая альтернатива у алгебр?

Denis
29.08.2018
10:30:30
f . foldr g a = foldr h b, where f a = b, f (g x y) = h x (f y)

kana
29.08.2018
10:32:19
в том, что не подходит под утверждение "одной катой выразить все"

Denis
29.08.2018
10:33:32
ну если f работает со скаляром каким-то, то ничего плохого не вижу, а так в другом случае можно алгебры складывать и компоузить как естественные преобразования

kana
29.08.2018
10:33:50
да речь не в "плохое/хорошее"
а собственно в корректности утверждения