Думал тут на досгуе о сабже, особенно о понимании тезиса о том, что любая система вычислений - есть частный случай модели акторов. Решил подойти именно с этого бока, поскольку поняв, почему рекурсия - это частный случай модели акторов, есть шанс приблизитья к пониманию того, например, почему LC - есть частный случай модели акторов.
Подход, немного сумасшедший, а может и не немного, но тем не менее.
Возьмем избитый факториал. Я решил, что, следует думать о вызывающей функции, как об объекте, посылающем сообщение. Этот объект знает адреса других объектов, функций, а также переменных, которые в данном контексте тоже есть функции-объекты которые имеют адрес(имя). Итак, наш объект посылает сообщение на адрес, по которому находится он сам, а содержание этого сообщения - это просьба отправить сообщение по следующему адресу с соответствующим аргументом. Само по себе утверждение, что объект может отправить сообщение самому себе, является, на первый взгляд парадоксальным, но этот парадокс кажущийся, когда мы, например, делаем запись в своем ежедневнике, мы делаем именно это - отправляем сообщение самому себе в будущем, а если абстрагироваться от времени, то это и будет - самому себе. Во всяком случае, подход этот даже более понятен, чем рекурсивный вызов, когда мы, выражаясь образно, просим схватить руку саму себя, или просим глаз увидеть самого себя. Получивший сообщение объект, соответственно, знает что делать дальше, поскольку сообщение которое он получил, содержит просьбу о вызове следующего объекта, по адресу(имя ф-ции) с полученным аргументом, и так далее по цепочке.
Здесь, наверное, ключом к пониманию является то, что мы проводим четкую границу между именем функции и самой функцией, ее сущностью. Таким образом, это не «принципиально новый способ», а всего лишь, несколько другой взгляд на вещи. Мы можем смотреть на этот процесс просто как на множество объектов (созданных динамически, но это для нас неважно), которые просто посылают сообщения и ждут ответов, это позволяет смотреть на тот же самый процесс, не как на последовательность вызовов, а как на параллельные процессы, происходящие вне времени, как бы одновременно.
Это мое понимание, на данный момент, вопроса: почему рекурсия - это частный случай модели акторов. Возможно ошибаюсь.
Перемещено mono из talks