Преобразование строки Erlang в атом и форматирование строки

Использование только list_to_atom () дает:

list_to_atom("hello"). 
hello
list_to_atom("Hello").
'Hello'

почему разница?

Я пытаюсь отформатировать строку с числами, строками и атомами следующим образом:

lists:flatten(io_lib:format("PUTVALUE ~p ~p", [list_to_atom("hello"), 40])).
"PUTVALUE hello 40"
lists:flatten(io_lib:format("PUTVALUE ~p ~p", [list_to_atom("Hello"), 40])).
"PUTVALUE 'Hello' 40"

как лучше всего сделать это в Erlang?

Изменить: Чтобы прояснить вопрос, есть еще значений, чем в примере выше, и в некоторых случаях значение может быть строкой или атомом, например

lists:flatten(io_lib:format("PUTVALUE ~p ~p ~p", [list_to_atom("hello"), X, 40])).

, где первый параметр всегда является строкой, но X может быть либо атомом, либо строкой. Третий параметр - всегда число.

9
задан mbsheikh 17 February 2012 в 04:49
поделиться