Size: a a a

Elm Lang сообщество разработчиков

2020 November 11

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Denis Krivosheev
Да новый, но почему это проблема? Так же и должно быть
Я не вижу никаких проблем! Это ты пишешь, что проверка ссылок не будет работать. На что я говорю, что будет
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Kir
Это некая чудовищная hashmap, заточенная под стандарные способы извращений фронтендеров над программированием, простите мой батхёрт
И да и нет
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Это оно и есть :)
ок, может я где-то попутал.
привык, что с cow говориться о какой-то общей части. Скопировать все и добавить новое значение это не использование общей части
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
shallow-copy-on-write :)
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Я не вижу никаких проблем! Это ты пишешь, что проверка ссылок не будет работать. На что я говорю, что будет
Нам нужно чтобы значение полученное после такого апдейта было НЕ равно по ссылке старому значению, при этом все поля старого должны быть равны по ссылке всем полям нового, кроме обновлённых
источник

K

Kir in Elm Lang сообщество разработчиков
Alexey Yurchenko
ок, может я где-то попутал.
привык, что с cow говориться о какой-то общей части. Скопировать все и добавить новое значение это не использование общей части
Если у вас здоровенное дерево и надо апдейтнуть по 1 ключу, до достаточно пересоздать spine до этого ключа, который log2 от его размера. Всё остальное дерево останется прежним.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Denis Krivosheev
Нам нужно чтобы значение полученное после такого апдейта было НЕ равно по ссылке старому значению, при этом все поля старого должны быть равны по ссылке всем полям нового, кроме обновлённых
Так и будет. То, что не поменялось, будет по тем же ссылкам
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Так и будет. То, что не поменялось, будет по тем же ссылкам
Но что здесь не так? Ты говоришь так как будто это не правильно
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Я ничего такого не говорю
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Kir
Если у вас здоровенное дерево и надо апдейтнуть по 1 ключу, до достаточно пересоздать spine до этого ключа, который log2 от его размера. Всё остальное дерево останется прежним.
и так v8 работает?
источник

K

Kir in Elm Lang сообщество разработчиков
Нет, так Эльм работает
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Я говорил, что ramda и тп "фп" либы в js эт пародия =)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"functional'ish programming"
источник

K

Kir in Elm Lang сообщество разработчиков
https://github.com/elm/core/blob/1.0.5/src/Array.elm - там массивы это 32-деревья
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Ага, как в Скалке, кложе и много где ещё
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
По поводу массивов в js ... в хроме например массивы это очень нетривиальный объект... до тех пор пока мы складываем элементы последовательно - это ArrayList, если мы делаем разряженный массив, то на каком-то этапе (при достижении достаточной степени разрежённости) - он превращается в хэш мэпу
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
При том там довольно много различных условий, когда и при каких обстоятельствах массив становится Мапой и снаружи сказать невозможно
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
И это информация из тех времён когда спреад оператора ещё небыло... сейчас когда это часть стандарта уже давно - я почти уверен что при использовании стареда массив превращается в хэш и спредится точно так же как объект
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Там ещё зависит от того что лежит в массиве
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
Если тип всегда один - он может долго быть ЭррэйЛист, как только положим элемент другого типа - тут же расплющится в мэпу опять таки
источник