学习函数式编程
【我的提交】
// 函数返回表示“一杯绿茶(green tea)”的字符串
const prepareTea = () => 'greenTea';
/*
有一个函数(代表茶的种类)和需要几杯茶,下面的函数返回一个数组,包含字符串(每个字符串表示一杯特别种类的茶)。
*/
const getTea = (numOfCups) => {
const teaCups = [];
for(let cups = 1; cups <= numOfCups; cups += 1) {
const teaCup = prepareTea();
teaCups.push(teaCup);
}
return teaCups;
};
// 只修改这一行下面的代码
const tea4TeamFCC = getTea(40);
// 只修改这一行上面的代码
【涉及的内容】
-
函数编程范式
- INPUT -> PROCESS -> OUTPUT
-
函数编程好处
- 功能独立——不依赖于程序的状态(比如可能发生变化的全局变量);
- 纯函数——同一个输入永远能得到同一个输出;
- 有限的副作用——可以严格地限制函数外部对状态的更改。
了解函数式编程术语
【我的提交】
// 函数返回表示“一杯绿茶(green tea)”的字符串
const prepareGreenTea = () => 'greenTea';
// 函数返回表示“一杯红茶(black tea)”的字符串
const prepareBlackTea = () => 'blackTea';
/*
有一个函数(代表茶的种类)和需要几杯茶,下面的函数返回一个数组,包含字符串(每个字符串表示一杯特别种类的茶)。
*/
const getTea = (prepareTea, numOfCups) => {
const teaCups = [];
for(let cups = 1; cups <= numOfCups; cups += 1) {
const teaCup = prepareTea();
teaCups.push(teaCup);
}
return teaCups;
};
// 只修改这一行下面的代码
const tea4GreenTeamFCC = getTea(prepareGreenTea,27);
const tea4BlackTeamFCC = getTea(prepareBlackTea,13);
// 只修改这一行上面的代码
console.log(
tea4GreenTeamFCC,
tea4BlackTeamFCC
);
【涉及的知识点】
Callback
:回调函数——被传递到另一个函数中调用的函数头等函数
:函数就像其他正常值一样,可以赋值给变量、传递给另一个函数,或从其它函数返回。(在 JavaScript 中,所有函数都是头等函数)高阶函数
:将函数作为参数或将函数作为返回值返回的函数lambda
:当函数被传递给另一个函数或从另一个函数返回时,那些传入或返回的函数