Skip to content

Instantly share code, notes, and snippets.

@dmitrylebedev
Created January 6, 2017 15:50
Show Gist options
  • Save dmitrylebedev/b9fce91a273a7a21df011e93f8c7d7d8 to your computer and use it in GitHub Desktop.
Save dmitrylebedev/b9fce91a273a7a21df011e93f8c7d7d8 to your computer and use it in GitHub Desktop.
Функция первого класса или функция высшего порядка
// Определение:
// Функция первого класса – функция принимающая в качестве аргумента другие функции или возвращающая функцию в качестве аргумента.
/**
* flip преобразовывает другую функцию так, чтобы порядок ее аргументов был обратным
*
* @param {Function} fn
* @returns {Function}
*/
export const flip = (fn) => (x,y) => {
return fn(y,x)
}
const wop = flip(Math.pow);
console.log(Math.pow(1, 2)); // 1
console.log(wop(1, 2)); // 2
// или
console.log(flip(Math.pow)(2,3)) // 9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment