- Mastering JavaScript Functional Programming
- Federico Kereki
- 194字
- 2021-07-02 22:41:11
Questions
2.1. No extra variables: Our functional implementation required using an extra variable, done, to mark whether the function had already been called. Not that it matters... but could you make do without using any extra variables? Note that we aren't telling you not to use any variables; it's just a matter of not adding any new ones, such as done, and only as an exercise!
2.2. Alternating functions: In the spirit of our onceAndAfter() function, could you write an alternator() higher-order function that gets two functions as arguments, and on each call, alternatively calls one and another? The expected behavior should be as in the following example:
let sayA = () => console.log("A");
let sayB = () => console.log("B");
let alt = alternator(sayA, sayB);
alt(); // A
alt(); // B
alt(); // A
alt(); // B
alt(); // A
alt(); // B
2.3. Everything has a limit!: As an extension of once(), could you write a higher-order function thisManyTimes(fn,n) that would let you call the fn() function up to n times, but would afterwards do nothing? To give an example, once(fn) and thisManyTimes(fn,1) would produce functions that behave in exactly the same way.
- Spring 5.0 Microservices(Second Edition)
- Visual Basic程序設(shè)計教程
- Animate CC二維動畫設(shè)計與制作(微課版)
- Django Design Patterns and Best Practices
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優(yōu)化計算
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- JavaScript從入門到精通(第3版)
- Learning Python Design Patterns
- Spring Boot企業(yè)級項目開發(fā)實戰(zhàn)
- Learning Raspbian
- Android開發(fā)案例教程與項目實戰(zhàn)(在線實驗+在線自測)
- Mastering Android Development with Kotlin
- SciPy Recipes
- Python程序設(shè)計開發(fā)寶典
- 金融商業(yè)數(shù)據(jù)分析:基于Python和SAS