неопределенные карты функций: to_json/1

Это одна из вещей, которым я научился у Programming Erlang, 2nd Ed, но, похоже, она не работает в оболочке.

$ erl
Erlang/OTP 17 [erts-6.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Eshell V6.2  (abort with ^G)
1> Dic = #{b => 1, a => 2}.
#{a => 2,b => 1}
2> maps:to_json(Dic).
** exception error: undefined function maps:to_json/1
3> 

Что здесь не так?


person daydreamer    schedule 06.01.2015    source источник


Ответы (2)


Programming Erlang, 2nd Ed был написан до того, как карты были представлены в выпуск 17 (в качестве экспериментальной функции), и кажется, что автор книги Джо Армстронг был слишком оптимистичен в их отношении. Тем не менее, некоторые из предлагаемых функций и синтаксиса еще не реализованы (или никогда не будут реализованы).

К счастью, есть парсеры JSON для erlang, которые поддерживают карты, проверьте:

person Łukasz Ptaszyński    schedule 06.01.2015

Другая библиотека (самая простая в использовании imo) — это jsone:

jsone github

person btk    schedule 06.05.2020