如何在 javascript 中获取箭头和咖喱函数的输出
How to get the output from arrow & curry function in javascript
这是我的代码。我没有得到我想要的输出。它应该交出 50,但它没有。有人请帮我修复错误吗?
const checkNum = entity => typeof entity === 'string' ? parseInt(entity) : entity;
const multiply = (x , y) => x => y => x * y;
const multiOne = (ar, gr) => ar.map(checkNum).map(multiply);
multiOne([5, 10]);
map
是一个 one-to-one 操作,因此对于您的数组,它会生成另一个数组。第二个参数不是你想的那样
reduce
是一个 many-to-one 操作,通过一次对两个元素重复应用一个操作来获取和数组并减少/折叠它(首先从数组中的两个元素,然后是结果前一个操作与数组的另一个元素相结合)。
const multiply = (x, y) => x * y;
const multiOne = (ar) => ar.reduce(multiply);
console.log(multiOne([5, 10]));
你似乎也想要部分应用函数,但你柯里化太多了。 ES6 中的标准函数并没有大量使用柯里化,它在实际的 FP 语言中更为常见(例如 Haskell)。
这是我的代码。我没有得到我想要的输出。它应该交出 50,但它没有。有人请帮我修复错误吗?
const checkNum = entity => typeof entity === 'string' ? parseInt(entity) : entity;
const multiply = (x , y) => x => y => x * y;
const multiOne = (ar, gr) => ar.map(checkNum).map(multiply);
multiOne([5, 10]);
map
是一个 one-to-one 操作,因此对于您的数组,它会生成另一个数组。第二个参数不是你想的那样
reduce
是一个 many-to-one 操作,通过一次对两个元素重复应用一个操作来获取和数组并减少/折叠它(首先从数组中的两个元素,然后是结果前一个操作与数组的另一个元素相结合)。
const multiply = (x, y) => x * y;
const multiOne = (ar) => ar.reduce(multiply);
console.log(multiOne([5, 10]));
你似乎也想要部分应用函数,但你柯里化太多了。 ES6 中的标准函数并没有大量使用柯里化,它在实际的 FP 语言中更为常见(例如 Haskell)。