Generating String from List in Erlang

pri*_*rma 3 string erlang list

I'm trying to generate a formatted string based on a list:

[{"Max", 18}, {"Peter", 25}]
Run Code Online (Sandbox Code Playgroud)

To a string:

"(Name: Max, Age: 18), (Name: Peter, Age: 35)"
Run Code Online (Sandbox Code Playgroud)

YOU*_*LID 8

第一步是创建一个可以将{Name,Age}元组转换为列表的函数:

format_person({Name, Age}) ->
    lists:flatten(io_lib:format("(Name: ~s, Age: ~b)", [Name, Age])).
Run Code Online (Sandbox Code Playgroud)

下一部分只是将此函数应用于列表中的每个元素,然后将它们连接在一起.

format_people(People) ->
    string:join(lists:map(fun format_person/1, People), ", ").
Run Code Online (Sandbox Code Playgroud)

展平的原因是io_lib返回一个iolist而不是一个平面列表.