да, это я понимаю - я просто не знал что функция может поменяться внутри текущего процесса
Внутри процесса исполняются функции Сначала ты создал процесс который исполняет mph_drop Он создал ещё один процесс (3 строка) И вызвал convert (4 строка) Внутри convert он встал в receive (8 строка)
Ок, drop_pid - его значение после того как передалось в функцию convert/1. Возможно я неверно выразился, я просто не понял как спаунился процесс с функцией mph_drop, а в итоге он стал с функцией convert. Не знал что так можно вот и озадачился.
Ок, drop_pid - его значение после того как передалось в функцию convert/1. Возможно я неверно выразился, я просто не понял как спаунился процесс с функцией mph_drop, а в итоге он стал с функцией convert. Не знал что так можно вот и озадачился.
то есть после convert(drop_pid) - я теряю контекст самой функции mph_drop?
Не уверен что правильно понял что понимается под контекстом, но можно мыслить что ‘контекст’ вкладывается в новый при вызове функции, как матрешки. При возврате снова развернется и вы окажитесь в предыдущем.
по сути мне ответили - если породить професс с функцией, которая внутри себя вызывает другую функцию, то вызываемая функция замещает текущуу в этом процессе - все верно?
по сути мне ответили - если породить професс с функцией, которая внутри себя вызывает другую функцию, то вызываемая функция замещает текущуу в этом процессе - все верно?
Ну потом же можно вернуться, не окончательно замещает
Нет, когда выполнение convert доедет до конца. В примере выше convert бексконечно вызывает себя рекурсивно, но например если была бы ветка с выходом. Или если будет брошено исключение