кодесурса
«JavaScript

JavaScript: карри (карри) функция

script1adsense2code
script1adsense3code

Основы JavaScript (синтаксис ES6): упражнение 46 с решением

Напишите программу на JavaScript для функции curry (карри)

Согласно wiki.haskell.org «Карринг - это процесс преобразования функции, которая принимает несколько аргументов, в функцию, которая принимает только один аргумент и возвращает другую функцию, если все еще требуются какие-либо аргументы. Однако fxy = g (x, y) форма с карри обычно более удобна, потому что допускает частичное применение.

Примечание: используйте рекурсию. Если количество предоставленных аргументов (аргументов) является достаточным, вызовите переданную функцию fn. В противном случае верните каррированную функцию fn, которая ожидает остальные аргументы. Если вы хотите вывести функцию, которая принимает переменное число аргументов (переменная функция, например, Math.min ()), вы можете при желании передать количество аргументов второму параметру arity.

Пример решения:

HTML-код:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Curry (curries) a function</title>
</head>
<body>
</body>
</html>

Код JavaScript:

//#Source https://bit.ly/2neWfJ2 
const curry = (fn, arity = fn.length, ...args) =>
  arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
console.log(curry(Math.pow)(2)(8));
console.log(curry(Math.min, 3)(10)(50)(2));

Пример вывода:

 256
2

Блок - схема:

«Блок-схема:

Демонстрация в реальном времени:

См. Pen javascript-basic-упражнение-1-46 от w3resource ( @ w3resource ) на CodePen .


Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите программу на JavaScript, чтобы разбить значения на две группы. Если элемент в фильтре верен, соответствующий элемент в коллекции принадлежит первой группе; в противном случае он относится ко второй группе.
Далее: напишите программу на JavaScript для глубокого сравнения двух значений и определения их эквивалентности.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code