Re[6]: Можно ли избавиться от async|await?
От: novitk США  
Дата: 14.12.25 18:13
Оценка:
Здравствуйте, SkyDance, Вы писали:

N>>Допустим у тебя есть функция prime/1(возвращает Ns простое число). Работает слишком долго и блокируют. В случае C# берем код как есть, ставим async, переименовываем в GetPrimeAsync. Если есть желание, но в современном мире multicore уже не обязательно, разбрасываем "await Task.Yield()".


SD>Просто "поставить async" не выйдет — нужно где-то "await". Иными словами, всю программу переписать.

Конечно ожидается что точка вызова уже async. Собственно есть встроенная обертка Task.Run и переписывать не надо вообще. Но тут я не в курсе, что то подобное возможно есть и в Erlang.

N>>В Эрланге надo полностью разбить на процессы.

SD>Для такой простой мелочи разбивать ничего не надо, есть готовая функция в OTP.
Блин, ну это же пример.

SD>Но можно написать и вручную, причем это будет выглядеть очень просто, красиво и элегантно. Оригинальная функция ровно так же не будет меняться. Только в месте вызова вместо "call_fun" будет "spawn(fun call_fun)". Все, писанины куда меньше, чем в C#.

"красиво и элегантно" это религия, а к "писанины куда меньше" в соседний топик. Там пока у C# короче.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.