Использование только 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
может быть либо атомом, либо строкой. Третий параметр - всегда число.