А кто-нибудь использует рекурсию в MQL4 ?

 
Попробовал факториал - вычисляет, переписал функцию по закрытию всех ордеров с цикла на рекурсивный вызов - работает!
 
как это как это как это ?
 
Geronimo писал(а) >>
как это как это как это ?

Вызов из функции самой себя.

 
Valmars писал(а) >>
Попробовал факториал - вычисляет, переписал функцию по закрытию всех ордеров с цикла на рекурсивный вызов - работает!

А есть причины сомневаться а работоспособности рекурсивных ф-ций, реализованных на MQL4?

P.S. Рекурсию в MQL ни разу не реализовывал, т.к. без дебаггера отлаживать довольно напряжно =)

 

Рекурсия рекурсией, но ее главный недостаток тебе должен быть известен, Valmars: она жутко жрет память. Да, алгоритмы могут стать более изячными, но это преимущество быстро пропадает по мере роста числа циклов рекурсии. Я обычно рекурсию не пользую.

 
использую для закрытия ордеров, отлично помогает закрывать то, что по каким-либо причинам не было закрыто с первого разу
 
Нет, но хотел бы.
 
Mathemat >>:

Рекурсия рекурсией, но ее главный недостаток тебе должен быть известен, Valmars: она жутко жрет память. Да, алгоритмы могут стать более изячными, но это преимущество быстро пропадает по мере роста числа циклов рекурсии. Я обычно рекурсию не пользую.

+10

 

Я не программист, так для себя балуюсь, но даже мне известно - профессионалы рекурсию не используют. Случайно рекурсия в программе может появиться у новичков из-за неопытности. Практически все книги по программированию даже уделяют отдельный раздел, как избежать случайной рекурсии, так как она может вызвать серьезные проблемы при работе программы.

 

Помнится, очень давно преподдавал Turbo Prolog - язык так называемого искусственного интеллекта. Там вообще рекурсия - чуть ли не главная его фишка. Студентам в качестве экзаменационной задачки на выбор (на 5 баллов) предлагал вычислить определитель небольшой матрицы с помощью разложения по минорам (правда, никто так и не решился попробовать).

Да, решение и правда красивое и краткое, прямо заглядение. Однако уже при порядке матрицы более 6х6 (если я не забыл) на моем рабочем 386-м писюке начинались проблемы - как раз из-за резкого роста числа внутренних буферных переменных, пожирающих память. На современном писюке, думаю, ситуация не будет намного лучше (порядок матрицы, определитель которой можно вычислить рекурсивно, вряд ли будет больше 10-12). Вывод очень простой: рекурсия - красивая игрушка, но совсем не практичная для серьезных вычислений.

 
Geronimo >>:
как это как это как это ?

http://absurdopedia.wikia.com/wiki/Рекурсивная_утка

 
zxc писал(а) >>

+10

Я не программист, так для себя балуюсь, но даже мне известно - профессионалы рекурсию не используют. Случайно рекурсия в программе может появиться у новичков из-за неопытности. Практически все книги по программированию даже уделяют отдельный раздел, как избежать случайной рекурсии, так как она может вызвать серьезные проблемы при работе программы.

Иногда без реккурсии невозможно обойтись, так как это самый простой способ решения задачи. Например нахождение определителя.

Причина обращения: