
Alexander
30.08.2018
08:09:19
нет. серьезно, ты говоришь чтоя не могу отличить, но если ты можешь, то в чем отличие?

Index
30.08.2018
08:10:28
во всем? ФП это про программирование с функциями, а теоркат это про отношения между математическими объектами
куски ФП можно представить математическими объектами и применить к ним теоркат, но это узкое пересечение

Alexander
30.08.2018
08:10:49
высокоуровневое программирование это про отношения между объектами

Google

Alexander
30.08.2018
08:11:06
и да, в фп они математические
а программирование с функциями это структурное программирование, если что

Index
30.08.2018
08:12:06
Математическую модель можно составить для всего, для императивных языков тоже. ФП это про выбор конкретной модели (чистые функции), что не делает это в большей или меньшей мере математикой
> а программирование с функциями это структурное программирование
Товарищ, что ты несешь, прекрати. Структурное программирование это без goto, это про if-then-else и while.
И там вообще не обязаны фигурировать функции никакие

Евгений
30.08.2018
08:13:35
Товарищи, вы не хотите продолжить абсурдные дискуссии в _blah?

A
30.08.2018
08:13:59
Это куда ты нас послал щас?

Index
30.08.2018
08:14:04
Я вообще не вижу тут никакой дискуссии, я до сих пор пытаюсь понять, надо мной издеваются или нет

Евгений
30.08.2018
08:15:43
Я думаю человек просто передёргивает, но в целом разделяет высказанное мнение

Alexander
30.08.2018
08:20:12
ответил владиславу в blah, а его там нет :(

Index
30.08.2018
08:35:22
присоединился в _blah чтобы тоже ответить, но быстро об этом пожалел

A64m
30.08.2018
09:18:24
> > It would be nice to have a real-time mode for the GC or something that is tuned for games and such. GC choppiness seems to be major point of cricitism that I’ve seen.
> I actually have some rather exciting news on this front but we're not quite ready to lift the covers yet.
так так так, дайте угадаю, очередной новый гц который недоделают и он сгниет?

A
30.08.2018
09:44:24
а что с гц в гхц?

Google

A
30.08.2018
09:44:38
сейчас

A64m
30.08.2018
10:10:50
параллельный, но не псевдоконкурентный, как в яве и дотнете >10 лет назад были

A
30.08.2018
10:13:06
параллельный, но не псевдоконкурентный ?

A64m
30.08.2018
10:15:51
ну да

Ilya
30.08.2018
10:17:14
Параллельный наверное в смысле забивания всех ядер компа

A64m
30.08.2018
10:19:53
параллельный, значит что сборщик собирает в несколько потоков
псевдоконкурентный значит, что мир останавливается не на все время сборки старого поколения, часть сборки (значительная) и мутатор работают одновременно

Yura
30.08.2018
10:46:59
Кто-то видел библиотеки которые реализуют TCP fast open ?
moesocks я уже нашёл

IC
30.08.2018
10:52:35
Зачем нужен анаморфизм если есть прямая рекурсия?

Sergey
30.08.2018
12:48:37

A64m
30.08.2018
12:49:11
конечно, псевдоконкурентные

Sergey
30.08.2018
12:50:07
Интересно, предвитится ли такое у нас.

A64m
30.08.2018
12:51:26
ну, я цитировал выше намеки как раз на такое, по всей видимости
другое дело, что я бы особо не рассчитывал

Евгений
30.08.2018
12:53:16
Интересно, а eta лучше собирает мусор, чем аналогичный ghc?

A64m
30.08.2018
12:53:36
в чем-то лучше, в чем-то хуже
явовский сборщик в смысле пауз может быть лучше, но для нормальной работы ленивого ФЯ нужны специальные фичи ГЦ

Евгений
30.08.2018
12:54:57

A64m
30.08.2018
12:55:58
А какие именно?
https://osa1.net/posts/2018-03-16-gc-optimizations.html
2 и 3
кметт любит рассказывать историю, что если отключить 3-ю, гхц не может собрать гхц

Maxim
30.08.2018
16:40:20
вот вам забавная странность

Google

Maxim
30.08.2018
16:40:34
GHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help
Prelude> newtype Test = Test { some :: Int }
Prelude> foo test{ some = 5 } = undefined
<interactive>:2:5: error: Parse error in pattern: test {some = 5}
Prelude> foo test{ .. } = undefined
<interactive>:3:5: error: You cannot use `..' in a record update
Prelude>

Yuriy
30.08.2018
18:35:05
всё правильно
второе сообщение не самое очевидное, да

Maxim
30.08.2018
18:36:07
про то и речь
ошибка есть, а сообщение дурацкое

Terminator
31.08.2018
05:48:41
@ybogomolov будет жить. Поприветствуем!

Юрий
31.08.2018
05:50:53
Хм. Отличный способ защиты от ботов.
Всем привет! ) В хаскеле я начинающий, поэтому буду либо в ридонли, либо задавать достаточно наивные вопросы. Но если смогу быть чем-то полезен, постараюсь делать посильный вклад.

Andrew
31.08.2018
05:53:36

Юрий
31.08.2018
05:55:18

ParkeT
31.08.2018
07:57:42
Что за _blah? :)

Pavel
31.08.2018
07:58:14

ParkeT
31.08.2018
07:58:57
? Спасибо!

Yuriy
31.08.2018
08:07:35

Alexander
31.08.2018
08:10:40
о, stack в полезных ссылках

ParkeT
31.08.2018
08:12:50

Yuriy
31.08.2018
08:13:25

ParkeT
31.08.2018
08:16:08

Admin
ERROR: S client not available

Евгений
31.08.2018
08:16:54
Надо закрепить информацию о закреплённом сообщении

Yuriy
31.08.2018
08:17:15
нет, я не упрекаю, просто подсказываю, как можно быстрее находить ответы

Google

Alexander
31.08.2018
08:18:37

Евгений
31.08.2018
08:19:51

Alexander
31.08.2018
08:25:53
@elemir90 так?

Евгений
31.08.2018
08:31:25
Надо тогда уж первым предложением

Alexander
31.08.2018
08:31:54
тогда не хвостовая рекурсия
rec = rec » info а тут rec = info » rec
оно конечно бесмысленно

Евгений
31.08.2018
08:33:56

A64m
31.08.2018
09:11:58
> nofib shows only small differences of about +/- ~0.5%
> containers: ~1.5% faster
> aeson: ~2% faster
> megaparsec: ~2-5% faster
> xml library benchmarks: 0.2%-1.1% faster
> vector-benchmarks: 1-4% faster
> text: 5.5% faster
КЛАССИКА НОФИБА

Terminator
31.08.2018
10:00:34
@uhbif19 будет жить. Поприветствуем!

Hot
31.08.2018
10:00:44
Dratuti!

Sergey
31.08.2018
10:25:50
странное для себя встретил:
-- | Hylomorphism is anamorphism followed by catamorphism.
hylo :: Functor f => (f b -> b) -> (a -> f a) -> (a -> b)
hylo phi psi = cata phi . ana psi
откуда тут берётся тип b, Как вообще они композируются если выход ana - f b, а вход cata - f a ?
http://hackage.haskell.org/package/data-fix-0.2.0/docs/Data-Fix.html

Ilya
31.08.2018
10:28:49
ana строит Fix f, а используется как seed, но в результате его нет
cata сворачивает Fix f в b

Ilya
31.08.2018
10:30:57

Ilya
31.08.2018
10:31:03
композируются-то не алгебра и ко-алгебра, а ana psi :: a -> Fix f и cata phi :: Fix f -> b

Sergey
31.08.2018
10:32:30
да, но всё равно не ясно. Тип точки никуда не делся:
λ :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
тут b должно быть одинаковым.
А! всё, увидел, да, композируются не (a -> f a), (b -> f b)

Ilya
31.08.2018
10:32:31
*deleted*
ну, положим, forall там на самом верху

Sergey
31.08.2018
10:34:33
да, щёлкнуло

Google

kana
31.08.2018
10:35:01
psi :: Int -> Maybe Int
psi n | n > 0 = Just (n - 1)
psi _ = Nothing
phi :: Maybe String -> String
phi Nothiing = "Z"
phi (Just x) = "S(" ++ x ++ ")"
cata phi :: Fix Maybe -> String
ana psi :: Int -> Fix Maybe
f :: Int -> String
f :: cata phi . ana psi
f 3 == "S(S(S(Z)))"
далее очевидно
Опоздал

Sergey
31.08.2018
10:35:26
Спасибо!

Ilya
31.08.2018
10:39:49
А пара и апо морфизмы нафига нужны?