無限を返す,のイメージをそのまま書くとこうなった
無限を返すジェネレータに対して外のifで必要なものだけを取ろうとしてハマった所が悔しいのでjsとpythonで並べて書いた.
[tmp.snapshotItem(j) for each (j in (function (i) {while(1) yield i++})(0)) if (j < tmp.snapshotLength)];
def myrange(i): while(1): yield i i += 1 [i for i in myrange(0) if i < 10]
あ,返ってこないのか..ちなみにmyrangeをxrangeに変えて引数にifの条件の前後を渡したら,ifか引数値のどちらか低い値までが返ってきた.つまりジェネレータが死んだ結果に対してifが働く,と.勉強になった.