【发布时间】:2018-08-16 20:18:09
【问题描述】:
我通过反复试验解决了以下问题,但仍然没有正确理解我是如何做到的。
有一个函数缺点:const cons = (x, y) => f => f(x, y);
将值存储到变量对:const pair = cons(5, 3);
创建两个函数 car 和 cdr ,它们每个都会返回一个参数。
car(pair); // 5
cdr(pair); // 3
我的解决方案:
const car = pair => pair((x, y) => x);
const cdr = pair =>pair((x,y) => y);
const cons = (x, y) => f => f(x, y);
const pair = cons(5, 3);
const car = pair => pair((x, y) => x);
const cdr = pair => pair((x,y) => y);
const carTest = car(pair);
const cdrTest = cdr(pair);
console.dir(carTest);
console.dir(cdrTest);
【问题讨论】:
-
我有时发现将箭头函数重写为常规函数很有帮助——它使闭包和返回值更容易理解(至少对我而言)。
-
做到了。解决练习仍然有问题。
标签: javascript functional-programming