Я думаю, вам нужно конвертировать из строки, так что вы можете использовать модули erl_scan и erl_parse:
1> erl_scan:string("{hari, localost}"++".").
{ok,[{'{',1},
{atom,1,hari},
{',',1},
{atom,1,localost},
{'}',1},
{dot,1}],
1}
2> {ok,Term} = erl_parse:parse_term(Tokens).
{ok,{hari,localost}}
3>Conv = fun({X, Y}) -> {atom_to_list(X), atom_to_list(Y)} end.
#Fun<erl_eval.6.80484245>
4> Conv(Term).
{"hari","localost"}
5>
Примечание 1 функция erl_parse: parse_term/1 будет работать, только если условия является допустимым выражением , поэтому мне пришлось добавить «.». в конце ввода.
Примечание 2 лет можно непосредственно преобразовать в окончательном выражении, если процитировать члены в выражении ввода:
1> {ok,Tokens,_} = erl_scan:string("{\"hari\", \"localost\"}.").
{ok,[{'{',1},
{string,1,"hari"},
{',',1},
{string,1,"localost"},
{'}',1},
{dot,1}],
1}
2> {ok,Term} = erl_parse:parse_term(Tokens).
{ok,{"hari","localost"}}
3>
Что о 'list_to_tuple (строка: лексемы («{Хари, localost}»," {,} ")).'? – raina77ow
благодарит его рабочий тон –
Ну, да, но он очень подвержен ошибкам. Я бы предложил проверить «erl_scan: string» (вместо этого не нужно делать это на работе). – raina77ow