Кстати, в макросах можно создавать локальные переменные, однако это выглядит сильно иначе, чем в функциях. Там есть специальные ноды, которые и хранят состояние. Посмотреть, как это сделано можно например в реализации движкового макроса ForEach
Было бы очень здорово, если бы для начала вы бы ответили на вопрос ПОЧЕМУ между этими тремя вариантами такая разница. Это сразу вызвало исследование технической подоплёки вопроса, и ответило на главное - когда стоит, а когда не стоит использовать тот или иной вариант ;)
А в варианте "возможности/ограничение" это выглядит несколько по-дилетантски.
Кстати, в макросах можно создавать локальные переменные, однако это выглядит сильно иначе, чем в функциях. Там есть специальные ноды, которые и хранят состояние. Посмотреть, как это сделано можно например в реализации движкового макроса ForEach
Было бы очень здорово, если бы для начала вы бы ответили на вопрос ПОЧЕМУ между этими тремя вариантами такая разница. Это сразу вызвало исследование технической подоплёки вопроса, и ответило на главное - когда стоит, а когда не стоит использовать тот или иной вариант ;)
А в варианте "возможности/ограничение" это выглядит несколько по-дилетантски.
Collapsed Graph - чисто косметическая фича, а смысл макросов и функций ровно такой же, как в C++, с аналогичным применением.
А вы в курсе ПОЧЕМУ?