Esiste un costrutto di pacchetto o linguaggio in R che facilita o fornisce l'implementazione di "Python-like generators"?Funzioni del generatore in R
per "generatori Python-like" intendo funzioni che mantengono lo stato tra chiamate, nella sintassi R ed ai prestiti parola resa da Python sarà simile:
iterable.fun <- function(){
yield list('a','b','c')
}
Con resa anziché un ritorno, quindi chiamando la funzione per tre volte consecutive darebbe:
> iterable.fun()
'a'
> iterable.fun()
'b'
> iterable.fun()
'c'
Edit: ho lasciato fuori un AS pect di generatori Python che li rende diversi dagli iteratori. È che l'intera lista di oggetti da iterare non è costruita sulla prima chiamata e quindi iterata, ma ogni chiamata di funzione crea l'unico elemento che ritornerà per quella chiamata.
R cerca di essere un linguaggio funzionale. Questa richiesta può essere soddisfatta solo da un approccio non funzionale. Puoi sovvertire la funzionalità con '<< -' se necessario, ma probabilmente è meglio pensare a ciò che vuoi come risultato finale e trovare una soluzione funzionale. –
Domanda simile: http://stackoverflow.com/questions/23509381/lazy-sequences-in-r – cbare
Inoltre, Luke Tierney ha scritto una [Lazy List Implementation] (http://homepage.cs.uiowa.edu/~ luke/R/artificiale/lazy.pdf). – cbare