Anonymous
А можно компилировать из под линукса на винду?
Aliester
смотря что
Aliester
С/С++?
Aliester
джава
A64m
нет, только виндовый компилятор ставить
Anonymous
Aliester
хаскель на винде вроде так себе работает
A64m
кросскомпиляции для ghc (почти) нет, только разработчики под андроид и иос кросскомпиляторы накостылили кое как
Anonymous
А мультиархитектурная компиляция?
Валерий
А, ещё не забывай про тонны оптимизаций для списков — что-нибудь вида
sum $ take 40 $ filter even $ map (\x -> floor (exp x)) [0.0, 0.1 ..]
может вообще не сделать список
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
Валерий
а может делать :с
с -О0 наверное будет, да)
с -О2 очень вряд ли, можно посмотреть
Валерий
Но не более, чем 1, емнип
A64m
да, ФП код ghc хорошо оптимизирует, но такой код кроме как на хаскеле никто нигде не пишет, так что на стороннего программиста это не особое впечатление произведет
Валерий
Я слышал, что кложура ещё жива
Валерий
Как-никак диалект лиспа
A64m
там ФП код не оптимизируется, насколько я понимаю
Валерий
под jvm самые тупые компиляторы обычно
но вот конкретно с кложурой не должно быть всё очень плохо
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
A64m
впрочем, я для своего минифп бенчмарка вариант на кложуре не писал, не знаю, готов что меня удивят (нет)
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
тип там есть команда развёртки функции в хвостовую рекурсию которая как-то работает
но я бы лучше послушал специалистов в кложе
Aliester
Aliester
Но он наверное полумертвый
A64m
Quet
Quet
если нужно сделать рекурсию и не взорвать стек то вполне хватает, а чего тебе еще надо?
A64m
в чем именно ограничена?
ну нельзя сделать хвостовую взаимную рекурсию двух функций, которые в жвм-ные методы энкодятся например
Quet
нельзя
а тебе это часто надо было делать?
Quet
(если ты вообще на кложе писал что-то в прод)
A64m
речь то не о том что на кложе писать нельзя, а о том что писать в ФП стиле нельзя, а там еще и не такое бывает
Quet
Quet
и все же два вопроса ) писал ли ты на кложе и как часто надо такую взаимную рекурсию было делать?
A64m
нельзя в фп стиле следует из того, что только хвостовая саморекурсия поддерживается, со всеми остальными дело плохо
A64m
A64m
я типизированные ФЯ люблю, буду писать на кложе только под страхом смерти
Quet
ну вдруг сказал бы что писал но вот эта взаимная рекурсия жить не дала
проект завалил, ушел на хаскель
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
Евгений
Quet
Евгений
Можно уйти в лётчики, на заводе тоже много работы найдётся. В любом случае это всё менее сложно и отвратно чем писать на чём-то кроме хаскеля после хаскеля
A64m
только вот то что я не писал на кложе не отменяет того, что рекурсия там не поддерживается, кроме самого вырожденного случая
Quet
Quet
по моему опыту -- не мешает вообще
A64m
там и гардед рекурсии дешевой нету, а уж ее то в ФП в каждой строчке применяют
Quet
в каждой прям? ) то есть открываю любую либу на хаскеле и она там в каждой второй строчке?
A64m
да, map filter вот это вот все
Quet
с этим в кложе нет проблем
A64m
все любители недофя так про недофя говорят, везде проблем полно
Quet
особенно смешно когда про проблемы говорят люди которые даже не писали на этом языке )
Quet
видимо проблемы уровня взаимной рекурсии (серьезная проблема, очень мешает жить)
Quet
ну так какие именно на ровном месте у тебя были проблемы с кложей?
A64m
т.е. ничего кроме foldl работать нормально не будет
Quet
кроме основной проблемы (ты не писал на этом языке, но заочно уже все плохо, "недофя" и тд)
Quet
что такое "работать нормально"? делаешь мап и он через раз падает с эксепшеном?
A64m
A64m
Quet
о, уже конкретика
что именно тормозит и относительно чего измерял?
A64m
но, насколько я понимаю, на кложе и стек вышибить вполне можно, чего в ФЯ быть не должно
A64m
Vladislav
SPJ не того человека назвал автором фичи в GHC (перепутал Ryan Newton и Ryan Scott). Мне б обидно было.
A64m
A64m
Quet
мне кажется делать выводы о языке ничего на нем не написав это шиза )
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
A64m
относительно си тоже тормозит ) и из этого делается вывод что "не работает нормально"
если вы считаете что с поддержкой базовых ФП фич в кложуре все хорошо перепишите этот трехстрочник на ней и я вам поверю и буду всем кложу рекламировать как полноценный ФЯ, потому что все базовые фичи тут есть
primes = 2:3:filter isPrime [5,7..] :: [Int]
isPrime x = all (/= 0) . map (rem x) . takeWhile ((<= x) . (^2)) $ primes
main = print . length . takeWhile (<= 2^24) $ primes
A64m
Vladislav
А про Backpack в GHC 8.2 он решил не говорить? Ой мда.
Влод
нужно поработать на брейнфаке чтобы делать выводы о нём. желательно продакшен
Quet
A64m