我试图理解函数式编程的概念。我只是在这里使用javascript来理解它的概念
通常我们会以这种方式数到 10:
for(var i=0;i<10;i++){
console.log(i+1)
}
这是函数式编程等效的吗?
var a = 1;
var n = 10;
function counter(){
console.log(a);
if(a<n){
counter(++a);
}
}
counter();
您可以使用递归来获取(更多)函数式编程解决方案:
(function counter(a, n){
console.log(a);
a < n && counter(a+1, n);
})(1, 10);
的看法。
Array(n).fill()
用于生成一系列要迭代的n
元素。
.forEach(...)
遍历元素,并根据元素的index
和外部提供的b
("基")值执行工作。
const counter = (n, b) => Array(n).fill().forEach((_, index) => console.log(index + b));
counter(10, 1);
您不能在函数式编程中更改可变数据。把它想象成在学校做数学,当你必须解决一个变量时。无论您做什么,该变量都将始终具有相同的值。在您的示例中,您正在更改该变量的值。要进行函数式编程,该变量在函数结束时需要具有与开始时相同的值。
var a = 1;
var n = 10;
counter(a,n);
function counter(num, limit){
if (num > limit)
return;
console.log(num);
counter(num+1, limit);
}
将被视为函数式编程,因为 a 和 n 仍然具有相同的值,因此您没有更改可变数据。
函数式编程