Size: a a a

2020 January 18

ŹR

Źmićer Rubinštejn in pro.elixir
Ну... нельзя добавить элементы в тупл
источник

IK

Ilya Kaznacheev in pro.elixir
Но как это все связывается внутри?
источник

IK

Ilya Kaznacheev in pro.elixir
То есть если новый тупл будет ссылаться на элементы старого, эти ссылки нужно хранить
источник

IK

Ilya Kaznacheev in pro.elixir
И каждый раз, получается, будет выделяться массив под ссылки?
источник

IK

Ilya Kaznacheev in pro.elixir
В редьюсе
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я не очень представляю, как можно редьюсить в тупл
источник

IK

Ilya Kaznacheev in pro.elixir
Ммм
источник

IK

Ilya Kaznacheev in pro.elixir
Ну ок, хоть во что
источник

IK

Ilya Kaznacheev in pro.elixir
Кроме листа
источник

IK

Ilya Kaznacheev in pro.elixir
С листом понятно
источник

IK

Ilya Kaznacheev in pro.elixir
А вот мапа?
источник

RS

Roman Suleymanov in pro.elixir
возможно ответ есть где-то здесь https://blog.stenmans.org/theBeamBook/#CH-Memory
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Мапа пересоздается
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Поэтому умные люди редьюсят мапу в список кв туплов и потом одним махом из него собирают
источник

VS

Vladimir Sekisov in pro.elixir
Źmićer Rubinštejn
Мапа пересоздается
map не пересоздается, под капотом map trie или любимый ETS judy array
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Может я чего-то не знаю про деревья, но как они помогают от копирования/клонирования понять не могу
источник

VS

Vladimir Sekisov in pro.elixir
может я чего-то не понял, но reduce в map не будет
копировать мапу каждый раз, мапа будет та же самая,
достаточно перевести в ассемблер что-то типа:
test() ->
   lists:foldl(fun (E, Acc) -> Acc#{E => true} end, #{}, [1,2,3]).

и посмотреть, что закончится все на put_map_assoc,
который в NIF вернет тот же самый указатель
источник

PG

Pïg Grëënëst in pro.elixir
Źmićer Rubinštejn
Из-за имутабельности две разных переменных могут ссылаться на одно место в памяти через reference counter
Нахера счётчик ссылок если есть сборщик мусора?
источник

PG

Pïg Grëënëst in pro.elixir
Подчищать циклы?
источник

АН

Алексей Новоселов in pro.elixir
Pïg Grëënëst
Нахера счётчик ссылок если есть сборщик мусора?
так сборщик мусора на подсчете ссылок работает
источник