Это очень искусственная проблема.В эрланге любое общение обычно является межпроцессным, и обмен строками не имеет никакого смысла - вы задаете вопрос в контексте процесса А, и вы хотите разместить ответ в контексте процесса В (вероятно, оболочки).
В любом случае, подумайте над тем, чтобы задать вопрос и подождать в блоке получения, чтобы получить ответ.Когда вопрос появляется в оболочке, вызовите функцию, которая отправит ответ «запрашивающему» процессу с вашим ответом.
Итак:
io:format("*--- New Patient with name - ~w~n", [PatientName]),
receive
{answer, yes} -> do_something();
{answer, no} -> do_something()
end
Функция «отвечая» будет выглядеть так:
answer(PatientName, Answer) ->
PatientName ! {answer, Answer}.
И действие оболочки:
$> *--- New Patient with name - User1036032
$> somemodule:answer('User1036032', yes).
Можно создать некоторый диалог с оболочкой (даже оболочкой Unix), но, если честно, он используется настолько редко, что я делаюне помню тех приемов ввода / вывода с чтением и записью.http://trapexit.com/ имел обыкновение иметь поваренную книгу с этим материалом.