我正在努力理解函数式编程的概念。我只是在这里使用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();
答案 0 :(得分:1)
您可以使用递归来获得(更多)函数式编程解决方案:
(function counter(a, n){
console.log(a);
a < n && counter(a+1, n);
})(1, 10);
答案 1 :(得分:0)
这是我对它的看法。
Array(n).fill()
用于生成一系列n
元素以进行迭代。
.forEach(...)
遍历元素并根据元素的index
和b
(&#34; base&#34;)值从外部提供工作
const counter = (n, b) => Array(n).fill().forEach((_, index) => console.log(index + b));
counter(10, 1);
&#13;
答案 2 :(得分:-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仍然具有相同的值,因此您没有更改可变数据。