Redline
AutoIT Гуру
- Сообщения
- 506
- Репутация
- 375
Если при написании алгоритма видно, что его можно сделать рекурсивным, то я могу попытаться сделать его таким.
При рекурсии нужно строго учитывать передаваемые параметры, иногда создавать дополнительные счетчики и использовать временные переменные для хранения состояний и пр., но от этого только интереснее.
Вот этот генератор сначала был написан с помощью простого ветвления (функция _solid() ) и длина генерируемой строки была ограничена величиной этого "дерева". Пришлось потратить много времени для переписывания этой функции, но зато теперь длина выходной строки ограничивается только ограничением вложенности функций AutoIt (в GUI, правда, она ограничена десятью ;) ), а сама функция стала более лаконичной.
При рекурсии нужно строго учитывать передаваемые параметры, иногда создавать дополнительные счетчики и использовать временные переменные для хранения состояний и пр., но от этого только интереснее.
Вот этот генератор сначала был написан с помощью простого ветвления (функция _solid() ) и длина генерируемой строки была ограничена величиной этого "дерева". Пришлось потратить много времени для переписывания этой функции, но зато теперь длина выходной строки ограничивается только ограничением вложенности функций AutoIt (в GUI, правда, она ограничена десятью ;) ), а сама функция стала более лаконичной.