Ответ
Это три разные парадигмы, определяющие стиль написания и структуру программ.
1. Императивное программирование
Описывает процесс вычислений в виде последовательности команд, изменяющих состояние программы. Код отвечает на вопрос "как" достичь результата.
- Ключевая идея: Пошаговые инструкции.
- Управление состоянием: Прямое изменение переменных.
Пример (Python):
# Задача: удвоить каждый элемент списка
numbers = [1, 2, 3]
doubled_numbers = []
for num in numbers:
doubled_numbers.append(num * 2)
# doubled_numbers теперь [2, 4, 6]
2. Объектно-ориентированное программирование (ООП)
Частный случай императивного программирования, где код организуется вокруг объектов, которые объединяют данные и методы для работы с ними. Это помогает структурировать сложные системы.
- Ключевая идея: Взаимодействие объектов.
- Управление состоянием: Состояние инкапсулировано внутри объектов.
Пример (Python):
class NumberList:
def __init__(self, numbers):
self._numbers = numbers
def double(self):
# Метод изменяет состояние объекта
self._numbers = [n * 2 for n in self._numbers]
def get_values(self):
return self._numbers
num_list = NumberList([1, 2, 3])
num_list.double()
# num_list.get_values() вернет [2, 4, 6]
3. Функциональное программирование (ФП)
Описывает вычисления как оценку математических функций и избегает изменяемого состояния. Код отвечает на вопрос "что" нужно сделать.
- Ключевая идея: Применение функций к данным.
- Управление состоянием: Избегание изменяемого состояния, данные неизменяемы (immutable).
Пример (Python):
# Задача: удвоить каждый элемент списка
numbers = [1, 2, 3]
# Функция map применяет lambda-функцию к каждому элементу
doubled_numbers = list(map(lambda x: x * 2, numbers))
# doubled_numbers теперь [2, 4, 6]
Итог: Императивный подход — это основа, ООП добавляет структуру через объекты, а ФП предлагает декларативный подход с фокусом на неизменяемость и чистые функции.