Функция maps:put/3
возвращает новую карту. Вы можете увидеть, что он не изменит Map
, если вы снова посмотрите на переменную после первого maps:put/3
вызова:
1> Map = #{"a" => 1}.
#{"a" => 1}.
2> maps:put("a", 42, Map).
#{"a" => 42}
3> Map.
#{"a" => 1}
Как видите, Map
сохраняет свое начальное значение.
Чтобы устранить проблему, вам нужно записать возвращаемое значение maps:put/3
в новую переменную:
4> Map1 = maps:put("a", 42, Map).
#{"a" => 42}
5> Map2 = maps:put("b", 1337, Map1).
#{"a" => 42,"b" => 1337}
Теперь переменная Map2
имеет искомое значение.