function recursivePlus(min, max, collection) {
if (!collection) {
collection = [];
collection.push(min);
return recursivePlus(++min, max, collection);
} else {
if (min <= max) {
collection.push(min);
return recursivePlus(++min, max, collection);
} else {
return collection;
}
}
}
recursivePlus(0, 3);
以函数样式(无突变,无循环)从值和函数中产生列表]]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以函数样式(无突变,无循环)从值和函数中产生列表]]相关的知识,希望对你有一定的参考价值。
我如何编写一个接受值并产生值列表的函数?
Ex:值= 2
,函数将增加1,直到达到条件为止(或无限,而我只是从中取/放掉),并且预期结果应类似于:[3,4,5,6, 7,8 ...]
现在我正在做这个丑陋的事情:
let min = ...; const max = ....; const acc = [min]; while (min.plus(1). < max) { min = min.plus(1); acc.push(min); }
奖金问题...。我怎么用类型符号表示呢?会是:(a-> [a])-> a-> [a]?
谢谢!
我如何编写一个接受值并产生值列表的函数?例如:value = 2,函数将递增1直到达到条件(或无限,而我只是从中取走...)...] >>
答案
function recursivePlus(min, max, collection) {
if (!collection) {
collection = [];
collection.push(min);
return recursivePlus(++min, max, collection);
} else {
if (min <= max) {
collection.push(min);
return recursivePlus(++min, max, collection);
} else {
return collection;
}
}
}
recursivePlus(0, 3);
以上是关于以函数样式(无突变,无循环)从值和函数中产生列表]]的主要内容,如果未能解决你的问题,请参考以下文章