如何在Erlang中将文本文件读入地图?

sma*_*aug 1 erlang data-structures

我有一个像这样的文本文件:

{fruit, [apple,banana,kiwi]}.
{car, [estate,hatchback]}.
{tree, [ebony,pine,ask,birch]}.
{planet, [earth]}.
Run Code Online (Sandbox Code Playgroud)

如何在Erlang中将其读入地图或任何其他数据结构(以进一步迭代每个键及其各自的值)并最终打印地图?

Hyn*_*dil 7

$ cat > things.txt
{fruit, [apple,banana,kiwi]}.
{car, [estate,hatchback]}.
{tree, [ebony,pine,ask,birch]}.
{planet, [earth]}.
$ erl
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V9.3  (abort with ^G)
1> {ok, L} = file:consult("things.txt").
{ok,[{fruit,[apple,banana,kiwi]},
     {car,[estate,hatchback]},
     {tree,[ebony,pine,ask,birch]},
     {planet,[earth]}]}
2> maps:from_list(L).
#{car => [estate,hatchback],
  fruit => [apple,banana,kiwi],
  planet => [earth],
  tree => [ebony,pine,ask,birch]}
Run Code Online (Sandbox Code Playgroud)