N>Какое нафиг отношение pattern matching имеет к асинхронности?
Прямое:
get_result() ->
spawn(parall1),
spawn(parall2),
spawn(parall3),
receive
{parall1, Result} -> Result;
{parall2, Result2} -> Result2;
{parall3, Result3} -> Result3;
end.
Запускаешь 3 функции в параллель, которая первой ответила — тот результат и возвращаем.
N>string message = (await CountRecordsAsync()) switch
Тут ничего асинхронного по сути нет. Как мне запустить много асинхронных функций, и "решать вопросы по мере поступления"? Да, там есть обертки, которые позволяют это делать врукопашную, но оно все очень сложно читается.