Valery Solovey писал(а):
То есть, как это вопрос? У вас там кубик можно разломать на 4 кубика или ещё как-нибудь?
Ну может и не разломать... а посмотреть чего у нее у нутре - можно
Дабл-клик - и ты уже у нее у нутре: вот тебе Думатель, вот тебе Решатель, вот - и Неонка... А вот и провода, их соединяющие.
В принципе, цикл и рекурсия - похожие понятия в философском смысле, наверное.
А вопрос в том, что "новички" пытаются делать его делать "кольцеванием". Что де факто (но мне кажется неправильным идеологически) у нас является "не совсем правильной рекурсией".
И в некоторых случаях это работает (есть у нас специальные кодовые заморочки для таких любителей)
Было бы правильно такую "закольцованную посылку сигнала" делать "отложенной". Типа, разъемное соединение обладает своим FIFO-буфером данных. В котором данные накапливаются, если этот метод уже занят, а выполнение метода повторяется до исчерпания буфера.
Можно говорить об едином базовом элементе с входными точками doStart и doStop и одной выходной. И из него сотворять циклы различного калибра... Да хоть бы и Дейкстры... Или анти-Дейкстры
Много о чем говорить можно, если иметь кодогененрцию, которая все эти разговоры не будет превращать в потерю эффективности
Valery Solovey писал(а):
Но кто знает, может удасться это изобразить графически...
А чего там знать-то. Да как два пальца
Тут у меня правда серьезные разногласия с Автором. Философские, по поводу понимания, что такое
рекурсия в ООП
((т.е., мы тоже люди, и у нас есть свои тараканы, и скелеты в шкафу))
Вот я, например, думаю, что повторный вход в метод объекта - это полное фуфло, а не рекурсия. Ибо, если про функцию можно говорить, что она реентерабельна (т.е., работает только с локальными переменными и аргументами), то про метод объекта - фигу.
Объект, это как раз такая штука, что обладает своей памятью. Причем, как правило, а не в виде исключения.
Ну вот, развивая идею динамического создания контекста (в стеке) для простых функций, я и делаю вывод, что рекурсия в ООП, это:
создание нового объекта => вызов нужных методов для него => уничтожение егоПро изобразить. У нас есть разновидность мультика, называемая
динамической. Т.е., мультик на схеме стоит, но его как бы и нет (типа пустой), пока ему не скажешь магическое слово ##add (если сказать несколько раз - будет массив объектов).
И есть у этого мультика режим (невыбранный элемент в вышеупомянутом массиве) "одноразового использования" - специально делал, в общем-то...
Ну вот рисуешь мультик, у него у нутре еще один мультик, ... , а там связанная копия самого верхнего мультика, в динамическом режиме.
Мне (но не Автору, кстати говоря) такое изображение рекурсии кажется понятным и очевидным.
В те далекие времена, когда я обо всем этом думал, то тренировался на самопальной сортировке.
Типа, не читая теории, разделил массив на две части, рекурсивно применил себя два раза, сшил эти два результата...