В JavaScript ES6 вкус, была введена функция генератора поэтому такого рода конструкций возможны:F # функциональный генератор эквивалент
var fib = function *(max) {
var x = 0, y = 1, tmp = 1;
while (tmp<max) {
yield tmp;
x = y;
y = tmp;
tmp = x + y;
}
}
var fibgen = fib(3000);
Здесь fibgen
является генератор, который будет производить меньше, чем 3000 чисел Фибоначчи.
Что было бы эквивалентной конструкцией в F #?
LE: Я не ищу algorithm for Fibonacci series. Но для некоторой функции генератора, которая лениво испускала бы значение при итерации по ней.
где ваше решение? –
Я очень новичок в функциональном программировании. Все, о чем я могу думать, - это императивная реализация. И этого я не хочу. – Adrian
Вы должны уточнить (путем редактирования вопроса) то, что вы ищете. Эквивалентная конструкция в F # практически идентична с использованием выражения последовательности и изменяемых переменных. Вы хотите знать идиоматический подход F #? Или идиоматический функциональный подход? – TheQuickBrownFox