此问题需要了解位于此处的javascript 懒惰库:https://github.com/rfw/sloth.js
如果我有这个javascript生成器。
function fibonacci(){
var fn1 = 1;
var fn2 = 1;
while (1){
var current = fn2;
fn2 = fn1;
fn1 = fn1 + current;
yield current;
}
}
使用树懒库我可以把它变成一个适合与树懒库一起使用的迭代器。
var iter = sloth.iterNextable(fibonacci());
上面URL中的sloth文档显示了使用take()函数从懒惰友好迭代器中获取n个元素的示例:
sloth.ify([1, 2, 3]).take(2).force();
[ 1, 2 ]
问题:如何从我的fibonacci()生成器到一个我可以调用take()的slothified对象?
答案 0 :(得分:2)
解决了它。我发布问题的原因是这个
sloth.ify(iter).take(5)
返回
[object Object]
所以我以为我做错了什么。这个对象是一个需要评估的惰性对象。这是force()的用武之地:
sloth.ify(iter).take(5).force()
返回
1,1,2,3,5