Использование только 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?
Edit: Чтобы прояснить вопрос, существует больше значений, чем в примере выше, и в некоторых случаях это может быть строка или атом, например
lists:flatten(io_lib:format("PUTVALUE ~p ~p ~p", [list_to_atom("hello"), X, 40])).
, где первый параметр всегдастрока, но X
может быть атомом или строкой.Третий параметр - это всегда число.