- Hands-On Functional Programming with TypeScript
- Remo H. Jansen
- 180字
- 2021-07-02 14:03:11
Functions as first-class citizens
It is common to find mentions of functions as first-class citizens in the FP literature. We say that a function is a first-class citizen when it can do everything that a variable can do, which means that functions can be passed to other functions as an argument. For example, the following function takes a function as its second argument:
function find<T>(arr: T[], filter: (i: T) => boolean) {
return arr.filter(filter);
}
find(heroes, (h) => h.name === "Spiderman");
Or, it is returned by another function. For example, the following function takes a function as its only argument and returns a function:
function find<T>(filter: (i: T) => boolean) {
return (arr: T[]) => {
return arr.filter(filter);
}
}
const findSpiderman = find((h: Hero) => h.name === "Spiderman");
const spiderman = findSpiderman(heroes);
Functions can also be assigned to variables. For example, in the preceding code snippet, we assigned the function returned by the find function to a variable named findSpiderman:
const findSpiderman = find((h: Hero) => h.name === "SPiderman");
Both JavaScript and TypeScript treat functions as first-class citizens.
推薦閱讀
- Vue.js設計與實現
- Java應用與實戰
- PHP+MySQL網站開發項目式教程
- Visual FoxPro程序設計習題集及實驗指導(第四版)
- 好好學Java:從零基礎到項目實戰
- 智能手機APP UI設計與應用任務教程
- 零基礎學C語言第2版
- INSTANT Silverlight 5 Animation
- 寫給程序員的Python教程
- Unity 2017 Game AI Programming(Third Edition)
- C語言程序設計教程
- Learning Shiny
- Web程序設計與架構
- AngularJS Web Application Development Cookbook
- Spark for Data Science