Побочные эффекты функционального программирования JavaScript

JavaScript

Смотрите блог для более связанного контентаGitHub.com/dedicated мойка…

концепция:

побочный эффектЭто изменение состояния системы в процессе вычисления результата или с внешним миром.наблюдаемое взаимодействие.

надКонцепция чистых функций строга, как и концепция побочных эффектов. Требования к ней очень высоки, вообще любое взаимодействие функции с внешней средой является побочным эффектом. От слова «побочный эффект» скорее имеется в виду «изменение состояния системы».

существуетруководствоНекоторые из побочных эффектов перечислены в:

  • изменить файловую систему
  • вставить запись в базу
  • отправить http запрос
  • переменные данные
  • печать/журнал
  • Получить пользовательский ввод
  • DOM-запрос
  • статус системы доступа

Если вообще нет побочных эффектов, то наш код — просто пустая трата электроэнергии, просто запуская его снова, и больше ничего не происходит, так что нет смысла писать код. Итак, в JS наша цель не в том, чтобы полностью исключить побочные эффекты.Примечание 1

mappop

const myPop = x => {
  let [...y] = x;
  return y.pop();
}

const a = 5;
function A(b) {
  return a + b;
}
A(5);

function foo(x) {
  return bar(x);
}

function bar(y) {
  return y + 1;
}

foo(1);

function foo(fn, x) {
  return fn(x);
}

function bar(y) {
  return y + 1;
}

foo(bar, 1);

function foo(fn) {
  return function(x) {
    return fn(x);   
  }
}

function bar(y) {
  return y + 1;
}

foo(bar)(1);

function foo(fn, x) {
  return fn(x);
}

function bar(y) {
  return y + 1;
}
bar = undefined;
foo(bar, 1);

bar = undefined

const foo = function(fn, x) {
  return fn(x);
}

const bar = function(y) {
  return y + 1;
}
bar = undefined;	// error
foo(bar, 1);

const