Czy istnieje wzorzec pakietu lub języka w R, który ułatwia lub zapewnia implementację "Python-like generators"?Funkcje generatora w R
Przez „generatory Pythona typu” mam na myśli funkcje, które utrzymują stan pomiędzy rozmowami, w składni R i zaciągania słowa kluczowego wydajność z Pythona będzie coś takiego:
iterable.fun <- function(){
yield list('a','b','c')
}
Z wydajnością zamiast powrót, to wywołanie funkcji trzykrotnym dałby:
> iterable.fun()
'a'
> iterable.fun()
'b'
> iterable.fun()
'c'
Edycja: wyszedłem z AS pekty generatorów Pythona, które odróżniają je od iteratorów. Jest to, że cała lista obiektów do iteracji nie jest budowana na pierwszym wywołaniu, a następnie iterowana, ale każde wywołanie funkcji tworzy jeden element, który zwróci dla tego wywołania.
R stara się być język funkcjonalny. Ta prośba może być spełniona tylko poprzez podejście niefunkcjonalne. Możesz przekreślić funkcjonalność za pomocą '<< -' jeśli to konieczne, ale prawdopodobnie lepiej jest pomyśleć o tym, co chcesz osiągnąć, i znaleźć funkcjonalne rozwiązanie. –
Podobne pytanie: http://stackoverflow.com/questions/23509381/lazy-sequences-in-r – cbare
Luke Tierney napisał także [Lazy List Implementation] (http://homepage.cs.uiowa.edu/~ luke/R/lazy/lazy.pdf). – cbare