Sobes.tech
Back to questions
Middle
9

В чём разница между ООП и функциональным программированием? Что такое чистая функция?

Companies where asked
Мыс

Answer from AI

sobes.tech AI

ООП (объектно-ориентированное программирование) и функциональное программирование — это разные парадигмы программирования с разными подходами к организации кода.

ООП:

  • Основной строительный блок — объект, который объединяет данные (свойства) и поведение (методы).
  • Использует наследование, инкапсуляцию, полиморфизм.
  • Состояние объектов может изменяться (мутабельность).

Функциональное программирование:

  • Основной строительный блок — функции как «первоклассные объекты».
  • Предпочитает чистые функции, которые не имеют побочных эффектов и не изменяют внешнее состояние.
  • Использует неизменяемость данных и композицию функций.

Чистая функция — это функция, которая:

  • При одинаковых входных данных всегда возвращает одинаковый результат.
  • Не изменяет внешнее состояние (не имеет побочных эффектов).

Пример чистой функции:

function add(a, b) {
  return a + b;
}

Пример нечистой функции:

let count = 0;
function increment() {
  count += 1; // изменяет внешнее состояние
  return count;
}