Size: a a a

2020 May 28

Oℕ

Oleg ℕizhnik in haskell_blah
A64m AL256m qn I0
ага, программируешь такой на хачкеле: ну надо мне список посортировать, для начала реализуем тимсорт для массива
неужели нет какого-то пакета container-transient чтобы такие штуки делать
источник

AV

Alexander Vershilov in haskell_blah
в смысле делать через мутабельные структуры что-то?
источник

R

Roman in haskell_blah
Ну да) Я на сисярпе писал кайний раз лет 3-5 назад
источник

Oℕ

Oleg ℕizhnik in haskell_blah
да
источник

AV

Alexander Vershilov in haskell_blah
ST + vector + vector-algorithms
источник

AV

Alexander Vershilov in haskell_blah
Вообще иногда такое хочется
источник

AV

Alexander Vershilov in haskell_blah
А ещё я хочу аллокацию в компактах!!!
источник

AV

Alexander Vershilov in haskell_blah
Хочешь ответить на http запрос - аллоцировался компакт, далее все аллокации в треде в нём, там 32К хватит на большинство вычислений, потом ответил всё и забыл
источник

λ

λоλторт in haskell_blah
Alexander Vershilov
Хочешь ответить на http запрос - аллоцировался компакт, далее все аллокации в треде в нём, там 32К хватит на большинство вычислений, потом ответил всё и забыл
а если не хватит?
источник

AV

Alexander Vershilov in haskell_blah
То или в обычном хипе или следующий чанк
источник

AA

A64m AL256m qn<co... in haskell_blah
Oleg ℕizhnik
неужели нет какого-то пакета container-transient чтобы такие штуки делать
контейнер-транзиент на хаскеле не то что не написать, но надо городить хак на хак, потому что нету мутабельных полей же. кметт начинал такой делать, но доделал и выложил на хекедж только пакет для хачения мутабельных полей.
ну т.е. кому-то надо это все писать, сортировку для массива вон за 20 лет написали. для списка-то нормальный мердж сорт написли не задолго до того, лет 15 назад, а там 8 строк или около того
источник

Oℕ

Oleg ℕizhnik in haskell_blah
Т.е. проблема в мутабельных полях тока
источник

Oℕ

Oleg ℕizhnik in haskell_blah
А какие там пропоузалы? Там ST можно будет вставить?
источник

AA

A64m AL256m qn<co... in haskell_blah
да, но этот пропозал заглох
источник

AA

A64m AL256m qn<co... in haskell_blah
список через массив-то отсортировать щас уже можно, речь про мутирование узлов в дереве
источник

AV

Alexander Vershilov in haskell_blah
Ну мне кажется, если насортировать массив в хорошем порядке и по нему строить готовую структуру то будет ок, или нет?
источник

AV

Alexander Vershilov in haskell_blah
Кажется, что можно построить оптимальный Map за O(n) по сортированному массиву известной длины, без мутаций во время построения
источник

AA

A64m AL256m qn<co... in haskell_blah
ну транзиенты не только для этого нужны же
источник

AA

A64m AL256m qn<co... in haskell_blah
а так-то да, из сортированного списка мап строится быстрее берем вектор/примитив сортируем, через список подаем на вход построителю дерева, построитель дерева сфьюзивается с читателем массива
источник

AA

A64m AL256m qn<co... in haskell_blah
всего три пакета использовали и дерево готово
источник