Size: a a a

Scala User Group

2021 March 15

ΑZ

Αλεχ Zhukovsky in Scala User Group
мне кстати всегда интересно было как фп скала вообще живет. В хачкеле там весь рантайм заточен под эти вещи и у него там всякие фьюзинги-материализации-..., а жвм по идее нифига не знает да и аллоцирует на каждый чих
источник

λ

λoλcat in Scala User Group
Конечно правильные реализации фолдрайта есть в котах - они стекобезопасные, но на хип переваливают стэк
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Αλεχ Zhukovsky
мне кстати всегда интересно было как фп скала вообще живет. В хачкеле там весь рантайм заточен под эти вещи и у него там всякие фьюзинги-материализации-..., а жвм по идее нифига не знает да и аллоцирует на каждый чих
норм живет, окупается все. Кроме того аллоцируемое тут по большей части живет в янг гене, значит дешево
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
Λнтон Войцишевский
норм живет, окупается все. Кроме того аллоцируемое тут по большей части живет в янг гене, значит дешево
ну тут ещё вопрос индирекций. Те же списки хачкель вроде оптимизирует, а хранить наивно в виде Cons как-то больно
источник

AK

Aleksey Kislitsa in Scala User Group
Интересно, по котам есть какие то курсы? я только одну красную книгу знаю 😿
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Αλεχ Zhukovsky
мне кстати всегда интересно было как фп скала вообще живет. В хачкеле там весь рантайм заточен под эти вещи и у него там всякие фьюзинги-материализации-..., а жвм по идее нифига не знает да и аллоцирует на каждый чих
в скале просто пишутся низкоуровневые мутабельные реализации, так же как и в хаскеле вручную мало кто обходит, обычно комбинаторами пользуются
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Αλεχ Zhukovsky
ну тут ещё вопрос индирекций. Те же списки хачкель вроде оптимизирует, а хранить наивно в виде Cons как-то больно
ну в фпскале список это обычный список из стдлиб, он там не трушнофпшно сделан
источник

AK

Aleksey Kislitsa in Scala User Group
И вот что интересно, если в стандарте foldR это foldL на реверсенной коллекции, а если коллекция ккое то там дерево хитровыкрученное? Как это отреверсят? К 35 съезду КПСС?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Αλεχ Zhukovsky
ну тут ещё вопрос индирекций. Те же списки хачкель вроде оптимизирует, а хранить наивно в виде Cons как-то больно
индирекции хаскель никак не оптимизирует, в нужных местах дефорстейшн делает, в скале это же делается с помощью .view\.iterator
источник

EK

Evgenii Kuznetcov in Scala User Group
Oleg ℕizhnik
да foldRight для применения в том же стиле, что в хаскеле требует оборачивания в стекобезопасные ленивизаторы вроде Eval
Спасибо!
Это подпадает под "не хип-сэйф" случай, как я понимаю
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Evgenii Kuznetcov
Спасибо!
Это подпадает под "не хип-сэйф" случай, как я понимаю
да
источник

Oℕ

Oleg ℕizhnik in Scala User Group
но считается, что с хорошим гарбейж коллектором нормальный сейф
источник

Oℕ

Oleg ℕizhnik in Scala User Group
к счастью в JVM гц хорошие
источник

v

vaan in Scala User Group
Aleksey Kislitsa
Интересно, по котам есть какие то курсы? я только одну красную книгу знаю 😿
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aleksey Kislitsa
И вот что интересно, если в стандарте foldR это foldL на реверсенной коллекции, а если коллекция ккое то там дерево хитровыкрученное? Как это отреверсят? К 35 съезду КПСС?
в стандарте это только к сиквенсам относится, у деревьев в принципе нет понятия foldR
источник

EK

Evgenii Kuznetcov in Scala User Group
Oleg ℕizhnik
но считается, что с хорошим гарбейж коллектором нормальный сейф
Эээ. Как качество гц влияет на объем потребляемой памяти?
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
Aleksey Kislitsa
И вот что интересно, если в стандарте foldR это foldL на реверсенной коллекции, а если коллекция ккое то там дерево хитровыкрученное? Как это отреверсят? К 35 съезду КПСС?
реверс для реализации фолдр немного бесполезен потому что в теории должна быт ьвозможность вызывать фолдр на бесконечных структурах и получать ответ за конечное время
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Evgenii Kuznetcov
Эээ. Как качество гц влияет на объем потребляемой памяти?
так, что она очень быстро освобождается во время обхода
источник

ΑZ

Αλεχ Zhukovsky in Scala User Group
foldr (\x xs -> if x > 10 then [] else x:xs) [] [1..]
[1,2,3,4,5,6,7,8,9,10]

С
реверсом так по-моему не получается
источник

λ

λoλcat in Scala User Group
Можно попробовать сфолдить стрим на 10^9 элементов с -Xmx10M
источник