在R中是否有包或語言結構來促進或提供「Python-like generators」的實現?R中的生成器函數
通過「巨蟒般生成」我的意思是保持狀態的呼叫之間,R中的語法和Python的借款關鍵字產量將功能類似:
iterable.fun <- function(){
yield list('a','b','c')
}
隨着產量代替一個回報,然後調用函數連續三次將給予:
> iterable.fun()
'a'
> iterable.fun()
'b'
> iterable.fun()
'c'
編輯:我離開了一個爲Python生成器,使它們與迭代器不同。這是因爲要迭代的整個對象列表不是在第一次調用時構建的,然後進行迭代,但每個函數調用都會創建一個將針對該調用返回的元素。
R期望是一個功能性的語言。該請求只能通過非功能性方法來實現。如有必要,您可以使用<< - - '來顛覆功能,但最好能夠考慮最終結果,並尋找功能性解決方案。 –
類似的問題:http://stackoverflow.com/questions/23509381/lazy-sequences-in-r – cbare
另外,Luke Tierney寫了一個[Lazy List Implementation](http://homepage.cs.uiowa.edu/~路加/ R /懶惰/ lazy.pdf)。 – cbare