
kana
22.05.2018
17:02:25
пытаюсь поставить пакет, которого нет в стакадж-снепшотах (не говорите ничего про кабал и никс, я уже сам об этом думаю, но хочется решить в рамках стака)
этот пакет требует servant-12
в lts-11.* servant-13
в lts-9 .* servant-11
если указать конкретно версию servant-12, то там еще куча зависимостей требует указания версии конкретной, то есть это не выход
я правильно понимаю, что возможности иметь локальные для пакета зависимости (не пытаться шарить версии между пакетами) нельзя?

Google

Alexander
22.05.2018
17:34:17
нельзя
это не npm ;)

kana
22.05.2018
17:35:02
токсик!

Alexander
22.05.2018
17:35:36
не, но там же можно от нескольких версий одной либы зависеть изза неймспейсов, вроде
тут ты загрузишь и символы и ещё развертки
если бы ты использовал executable а не либу, то не шарить зависимости бы было можно

Антон
22.05.2018
17:55:16
Аргх, все наработки по решению пропали. Заново кату писать

Yura
22.05.2018
18:32:48
собрались хаскелисты в твиторе и обсудили свой PHPешный опыт...

Антон
22.05.2018
18:36:20
Что-то совсем не выходит на ST написать. Придётся StateT брать

Alexander
22.05.2018
18:36:58
ну чтож поделать
только мне твиттер сломали?

Ignat
22.05.2018
18:37:59
он сломан since 2006

Alexander
22.05.2018
18:38:57
ну это понятно

Google

Антон
22.05.2018
18:39:58

Alexander
22.05.2018
18:41:00
а что с ST не так?

Антон
22.05.2018
19:59:15
а что с ST не так?
Постоянно ошибки типизации, слишком сложные, чтобы я мог в них разобраться. Ну и тот факт, что ST — монада, а не трансформер, тоже мешается

Stepan
22.05.2018
20:50:59
поясните, почему хаскель работает быстрее питона? Я всегда считал питон быстрее функциональных яп

Alexander
22.05.2018
20:51:57
да даже ocaml быстрее питона будет...
а вообще потому, что это компилируемый в нативный код язык, с большим чистом оптимизаций

Ilya
22.05.2018
20:52:24

Alexander
22.05.2018
20:52:56
ну быстрее кода на си, в которое вложено сравнительная работа
но это скорее исключение

Stepan
22.05.2018
20:53:30

illiatshurotshka❄️
22.05.2018
20:54:33

Ilya
22.05.2018
20:54:47

Alexander
22.05.2018
20:55:07

Stepan
22.05.2018
20:55:37
по-моему вы тролль
Нет. Просто я адепт С и потому слабо представляю в чем они могут проиграть

Alexander
22.05.2018
20:56:38
ну у нас был тестовый проект, где меряли анализ потоковых графов, на сишке есть библиотека stinger
у нас была реализация на haskell которая обгоняла сишку

Stepan
22.05.2018
20:56:58

Alexander
22.05.2018
20:57:28
но там было за счет того, что на больших данных в си возрастала фрагментация кучи, в то время как в haskell сжимающий сборщик
это не самый часто возникающий эффект, но он есть

Google

Ilya
22.05.2018
20:58:12

Alexander
22.05.2018
20:58:26
а так-то у gcc/icc гораздо лучше с оптимизациями, и написать код на си всегда можно лучше

Stepan
22.05.2018
20:58:33

illiatshurotshka❄️
22.05.2018
20:58:34

Alexander
22.05.2018
20:58:37
просто это может быть сильно времязатратнее

Stepan
22.05.2018
21:00:04

Andy
22.05.2018
21:00:37
Ну была помню спецолимпиада, где код на питоне работал быстрее хаскела в несколько раз. Потом конечно ускорили, и было почти как в си (естественно обогнав питон во много раз). Правда там нативный был питон или pypy, но не сишное расширение

Alexander
22.05.2018
21:00:59
ну там реализация кривая была сначала
так то там haskell обогнал rust в конце концов
но ту реализацию, что была в конце никто в здравом уме писать не будет
хотя питон в 2 раза и наивная обошла
нормальная сравнимая с растом

Andy
22.05.2018
21:02:10
Ну наверное ребята из раста не сильно может старались. По идее то к раста больше возможностей для оптимизаций

Alexander
22.05.2018
21:02:17
не нормальная 1.1/1.2 от сишки

illiatshurotshka❄️
22.05.2018
21:02:28

Alexander
22.05.2018
21:02:43
Andy ну вроде у них на канале особо идей не было
в расте fusion можно через итераторы получить, ну и там от него не много толку
там из-за того, как проходятся данные нельзя было временные структуры делать
но все равно основной бонус там от того, какой размер буффера

Andy
22.05.2018
21:04:33
https://m.habr.com/post/323106/ вот кстати про питон си и раст) можно не читать , а только в конце табличку посмотреть. Правда офтопик , хаскела там нету

Google

Alexander
22.05.2018
21:04:38
так что так себе - бенчмарк malloc и write

Stepan
22.05.2018
21:05:11
Спасибо за подробные пояснения
Всем спокойной ночи

Alexander
22.05.2018
21:05:35
спокойной, обращайся ещё если вопросы будут

Andy
22.05.2018
21:07:12

Alexander
22.05.2018
21:07:44
не должен бы

Dmitry
22.05.2018
23:36:37
Если не вылизывать код на C / Haskell, то последний может оказаться быстрее ещё и из-за ленивости, т.к. не будет лишнее считать.
Например, надо посчитать f(x, y), причём использование 'y' зависит от значения 'x'. В C придётся считать оба, а в Haskell второй будет вычислен по необходимости
Понятно, что и это можно допрограммировать в C, но это уже то самое "вылизывание кода"

Yuriy
23.05.2018
05:55:26

Vladimir
23.05.2018
06:37:31
Ещё есть всякий PyPy же, который дикая смесь jit и суперкомпиляции.

Oleg
23.05.2018
06:47:07
Обычный tracing JIT
Агрессивные оптимизации - это не суперкомпиляция

Denis
23.05.2018
07:05:57
Я когда про агрессивные оптимизации слышу, вспоминаю Contra III. Там в самом начале была фраза: we must fight them aggressively.

Слава
23.05.2018
07:12:38

Oleg
23.05.2018
07:16:00
Вообще интересно как трюффелёвые питоны по перфомансу с PyPy

Daniel
23.05.2018
07:26:39
никак вродь, змея в трюфелях еще не оч работоспособна

?Томат?
23.05.2018
07:27:19

Yuriy
23.05.2018
07:45:15
и тут оффтопик

Google

Евгений
23.05.2018
07:59:19
Неделя без оффтопа в основном чате обернулась неделей оффтопа в обоих чатах

Yuriy
23.05.2018
08:08:27
да ладно, только капелька

Alexander
23.05.2018
08:36:54
жалко, статистика не считает сколько онтопика в абсолютных цифрах

Евгений
23.05.2018
08:39:18
В абсолютных цифрах зато можно сказать, что в чате стало тихо, @combot не даст соврать

Alexander
23.05.2018
08:39:58
это-то очевидно, но это не говорит о том, уменьшился или увеличился онтопик

Vasiliy
23.05.2018
08:41:46
Нужно изменить тактику. Задавить оффтопик продуктивным общением по делу.

Владислав
23.05.2018
08:43:47
data Human a = Age a | Dead
на хаскеле можно пофилософствовать о жизни и смерти)

Евгений
23.05.2018
08:44:20

Maxim
23.05.2018
08:46:04

Vasiliy
23.05.2018
08:46:20

Евгений
23.05.2018
08:46:44

Vasiliy
23.05.2018
08:47:11
А поподробнее можно, пожалуйста?

Владислав
23.05.2018
08:47:11

Anatolii
23.05.2018
08:47:28
а тут инт не нужен возле Human

Alexander
23.05.2018
08:48:23
{-# LANGUAGE RankNTypes #-}
data Human a = Alive (Num a => a) | Dead

Vasiliy
23.05.2018
08:48:27

Владислав
23.05.2018
08:48:44
(Num a => Human a)
вот так что ли?
class Num a => Human a where
data Human a = Age a | Dead

Alexander
23.05.2018
08:49:14
42 :: Human * 27
весело будет
квадратнолюди