Alexander
просто это может быть сильно времязатратнее
Sr
KLH
Ну была помню спецолимпиада, где код на питоне работал быстрее хаскела в несколько раз. Потом конечно ускорили, и было почти как в си (естественно обогнав питон во много раз). Правда там нативный был питон или pypy, но не сишное расширение
Alexander
ну там реализация кривая была сначала
Alexander
так то там haskell обогнал rust в конце концов
Alexander
но ту реализацию, что была в конце никто в здравом уме писать не будет
Alexander
хотя питон в 2 раза и наивная обошла
Alexander
нормальная сравнимая с растом
KLH
Ну наверное ребята из раста не сильно может старались. По идее то к раста больше возможностей для оптимизаций
Alexander
не нормальная 1.1/1.2 от сишки
Alexander
Andy ну вроде у них на канале особо идей не было
Alexander
в расте fusion можно через итераторы получить, ну и там от него не много толку
Alexander
там из-за того, как проходятся данные нельзя было временные структуры делать
Alexander
но все равно основной бонус там от того, какой размер буффера
KLH
https://m.habr.com/post/323106/ вот кстати про питон си и раст) можно не читать , а только в конце табличку посмотреть. Правда офтопик , хаскела там нету
Alexander
так что так себе - бенчмарк malloc и write
Sr
Спасибо за подробные пояснения
Sr
Всем спокойной ночи
Alexander
спокойной, обращайся ещё если вопросы будут
Alexander
не должен бы
Dmitry
Если не вылизывать код на C / Haskell, то последний может оказаться быстрее ещё и из-за ленивости, т.к. не будет лишнее считать.
Dmitry
Например, надо посчитать f(x, y), причём использование 'y' зависит от значения 'x'. В C придётся считать оба, а в Haskell второй будет вычислен по необходимости
Dmitry
Понятно, что и это можно допрограммировать в C, но это уже то самое "вылизывание кода"
Vladimir
Ещё есть всякий PyPy же, который дикая смесь jit и суперкомпиляции.
Oleg
Oleg
Обычный tracing JIT
Oleg
Агрессивные оптимизации - это не суперкомпиляция
Denis
Я когда про агрессивные оптимизации слышу, вспоминаю Contra III. Там в самом начале была фраза: we must fight them aggressively.
Слава
Oleg
Вообще интересно как трюффелёвые питоны по перфомансу с PyPy
Danila Matveev
никак вродь, змея в трюфелях еще не оч работоспособна
Cheese
и тут оффтопик
Евгений
Неделя без оффтопа в основном чате обернулась неделей оффтопа в обоих чатах
Cheese
да ладно, только капелька
Alexander
жалко, статистика не считает сколько онтопика в абсолютных цифрах
Евгений
В абсолютных цифрах зато можно сказать, что в чате стало тихо, @combot не даст соврать
Alexander
это-то очевидно, но это не говорит о том, уменьшился или увеличился онтопик
Vasiliy
Нужно изменить тактику. Задавить оффтопик продуктивным общением по делу.
Vladislav
data Human a = Age a | Dead
на хаскеле можно пофилософствовать о жизни и смерти)
Maxim
Евгений
Vasiliy
А поподробнее можно, пожалуйста?
Vladislav
Anatolii
а тут инт не нужен возле Human
Alexander
{-# LANGUAGE RankNTypes #-}
data Human a = Alive (Num a => a) | Dead
Vladislav
(Num a => Human a)
вот так что ли?
class Num a => Human a where
data Human a = Age a | Dead
Alexander
42 :: Human * 27
Alexander
весело будет
Alexander
квадратнолюди
Anatolii
data Human = Age Int | Dead ?
Евгений
тот
здесь число по хаскелю можно писать или по функциональным зякам? не умере ть - фрукты как первый шаг, лучше пока не знаю
Vladislav
Alexander
вообще обычно так и делают
Alexander
а то потом захочется сделать какой-нить traverse и не получится
Евгений
Alexander
как ты написал
Cheese
Alexander
опять к недооформленным вопросам по парсерам
Alexander
вот у меня есть текст fooo foo!bar "qoobidooh foo!bar"
Alexander
так.. пока писал вопрос исчерпался
Alexander
но на всякий случай вот foo!bar и foo это токены, но у foo!bar ещё нужно доразбирать, нужно сказать, что там есть части [foo, !bar]
Alexander
это разумно разделять и возвращать полный токен, а потом его парсить или нет?
кана
Maxim
пасиб
Евгений
Alexander
парсер этого не знает
Евгений
Вообще без синтаксиса ответить однозначно нельзя
Alexander
т.е. это потом человек решит
Alexander
т.е. foo это или литерал или ссылка
Alexander
foo!bar точно ссылка