Size: a a a

2020 February 27

ŹR

Źmićer Rubinštejn in ErlangRus
Да, после 32 все идет нахер
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Наверное я тупо в jsonах не заходил так глубоко никогда
источник

ŹR

Źmićer Rubinštejn in ErlangRus
iex(14)> Enum.map(1..33, fn el -> {"#{el}", el} end) |> Enum.into(%{}) |> Jason.encode
{:ok,
"{\"10\":10,\"24\":24,\"14\":14,\"12\":12,\"16\":16,\"4\":4,\"26\":26,\"32\":32,\"8\":8,\"5\":5,\"3\":3,\"19\":19,\"9\":9,\"7\":7,\"13\":13,\"2\":2,\"11\":11,\"15\":15,\"29\":29,\"17\":17,\"25\":25,\"28\":28,\"18\":18,\"27\":27,\"23\":23,\"31\":31,\"6\":6,\"30\":30,\"20\":20,\"22\":22,\"21\":21,\"1\":1,\"33\":33}"}
источник

СИ

Сергей Иванов in ErlangRus
Źmićer Rubinštejn
iex(1)> Jason.encode(%{a: 1, b: 2})
{:ok, "{\"a\":1,\"b\":2}"}
iex(2)> Jason.encode(%{b: 1, a: 2})
{:ok, "{\"a\":2,\"b\":1}"}
iex(3)> Jason.encode(%{b: 1, a: 2, c: 3})
{:ok, "{\"a\":2,\"b\":1,\"c\":3}"}
по мне так твой jason неверно работает. осуществляет какое-то неявное поведение. эдакий наведенный баг от использования map. переходи на list если хочешь управлять компоновкой json
источник

SP

Sergey Prokhorov in ErlangRus
Alexxz a15e
Возможно, что уже все реализовано и надо просто грепать tree в документации 8)
это внутренние детали реализации map. Оно не документировано.
источник

СИ

Сергей Иванов in ErlangRus
Źmićer Rubinštejn
iex(14)> Enum.map(1..33, fn el -> {"#{el}", el} end) |> Enum.into(%{}) |> Jason.encode
{:ok,
"{\"10\":10,\"24\":24,\"14\":14,\"12\":12,\"16\":16,\"4\":4,\"26\":26,\"32\":32,\"8\":8,\"5\":5,\"3\":3,\"19\":19,\"9\":9,\"7\":7,\"13\":13,\"2\":2,\"11\":11,\"15\":15,\"29\":29,\"17\":17,\"25\":25,\"28\":28,\"18\":18,\"27\":27,\"23\":23,\"31\":31,\"6\":6,\"30\":30,\"20\":20,\"22\":22,\"21\":21,\"1\":1,\"33\":33}"}
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Enum.map(1..33, fn el -> {"#{el}", el} end) |> Enum.into(%{}) |> :jiffy.encode

"{\"10\":10,\"24\":24,\"14\":14,\"12\":12,\"16\":16,\"4\":4,\"26\":26,\"32\":32,\"8\":8,\"5\":5,\"3\":3,\"19\":19,\"9\":9,\"7\":7,\"13\":13,\"2\":2,\"11\":11,\"15\":15,\"29\":29,\"17\":17,\"25\":25,\"28\":28,\"18\":18,\"27\":27,\"23\":23,\"31\":31,\"6\":6,\"30\":30,\"20\":20,\"22\":22,\"21\":21,\"1\":1,\"33\":33}"
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Вот лист jiffy читает с конца
источник

ŹR

Źmićer Rubinštejn in ErlangRus
А tree - точно так же
источник

СИ

Сергей Иванов in ErlangRus
Źmićer Rubinštejn
Вот лист jiffy читает с конца
jsx:encode(#{<<"library">> => <<"jsx">>, <<"awesome">> => true}).
<<"{\"awesome\":true,\"library\":\"jsx\"}">>


но я бы на стал полагаться на это. ни map ни json не дают гарантий.  я использую list .
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Сергей Иванов
jsx:encode(#{<<"library">> => <<"jsx">>, <<"awesome">> => true}).
<<"{\"awesome\":true,\"library\":\"jsx\"}">>


но я бы на стал полагаться на это. ни map ни json не дают гарантий.  я использую list .
В общем то мне насрать по большому счету на порядок, но просто забавный факт
источник

A

Alexxz a15e in ErlangRus
Sergey Prokhorov
это внутренние детали реализации map. Оно не документировано.
И правильно. А в эрланге нет возможностей интерфейсов, чтобы можно было малость абстрагироваться? Сказать что вот тут будет контейнер K, V и с ним можно работать. А вот тут у меня скажем, итератор по контейнеру... Или эти слои абстракции так и не сформировались в языке?
источник

A

Alexxz a15e in ErlangRus
Только вручную, явно и хардкорно?
источник

SP

Sergey Prokhorov in ErlangRus
в стандартной библиоткеке пожалуй нет
источник

СИ

Сергей Иванов in ErlangRus
Sergey Prokhorov
там же в зависимости от размера map его внутреннее представленгие меняется с массива на tree динамически
а может (гипотетически) и хештаблицей стать же
источник

SP

Sergey Prokhorov in ErlangRus
Сергей Иванов
а может (гипотетически) и хештаблицей стать же
>  * hashmaps are an adaption of Rich Hickeys Persistent HashMaps
> *   which were an adaption of Phil Bagwells - Hash Array Mapped Tries
источник

SP

Sergey Prokhorov in ErlangRus
источник

SP

Sergey Prokhorov in ErlangRus
т.е. это и хешмап и trie в одном лице
источник

SP

Sergey Prokhorov in ErlangRus
trie для персистентности (чтоб не приходилось целиком копировать при каждом изменении)
источник

СИ

Сергей Иванов in ErlangRus
Sergey Prokhorov
т.е. это и хешмап и trie в одном лице
ну вот. а может и упорядоченый массив быть. короче - использовать это нельзя
источник