Шаг 11.
Рекурсия на Python. Основные понятия рекурсивного программирования. Императивное и декларативное программирование

    На этом шаге мы проведем небольшое сравнение этих парадигм программирования.

    Парадигма программирования - это общая стратегия разработки программного обеспечения. Парадигма императивного программирования фокусируется на том, как работает программа, когда код явно описывает поток управления и команды, которые изменяют значения переменных (то есть состояние программы). Из этой парадигмы следует итерационный код. Напротив, рекурсивный код опирается на декларативную парадигму программирования, которая фокусируется на том, что должны делать программы без явного описания потока управления, и может считаться противоположностью императивного программирования. Функциональное программирование следует декларативной парадигме, которая исключает побочные эффекты, а все действия сводятся к вычислению математических функций.

    Таким образом, при разработке рекурсивного кода программисты нацелены думать о том, что должны делать функции, а не как они должны это делать. Отметим, что это имеет прямое отношение к функциональной абстракции и использованию программных библиотек, когда программисты, не беспокоясь о деталях реализации, могут сосредоточиться исключительно на функциональных возможностях, считая методы правильно работающими "черными ящиками". По этой причине с позиций высокоуровневого программирования программисты могут - и должны - рассматривать вызовы рекурсивных функций как обращения к "черным ящикам", дающим правильные результаты (как на рисунке 1(a), а не думать обо всех рекурсивных шагах вплоть до начального условия (как на рисунке 1(b) 10 шага). Зачастую фиксация внимания на деталях низкого уровня, касающихся цепочки вызовов функций, только запутывает дело.

    На следующем шаге мы сравним рекурсию и итерацию.




Предыдущий шаг Содержание Следующий шаг