Có cấu trúc gói hoặc ngôn ngữ trong R tạo điều kiện hoặc cung cấp việc thực hiện "Python-like generators" không?Các chức năng của máy phát điện trong R
Bằng cách "phát Python-like" Ý tôi là chức năng mà giữ trạng thái giữa các cuộc gọi, trong cú pháp R và vay từ khóa năng suất từ Python sẽ được giống như:
iterable.fun <- function(){
yield list('a','b','c')
}
Với năng suất thay vì một trở, sau đó gọi hàm ba lần liên tiếp sẽ cung cấp cho:
> iterable.fun()
'a'
> iterable.fun()
'b'
> iterable.fun()
'c'
Edit: tôi rời ra một như pect của các trình tạo Python làm cho chúng khác với các trình lặp. Đó là toàn bộ danh sách các đối tượng để lặp lại không được xây dựng trên cuộc gọi đầu tiên và sau đó được lặp lại, nhưng mỗi lệnh gọi hàm tạo ra một phần tử sẽ trả về cho cuộc gọi đó.
R cố gắng để trở thành một ngôn ngữ chức năng. Yêu cầu này chỉ có thể được thực hiện bằng cách tiếp cận phi chức năng. Bạn có thể phá hủy chức năng bằng '<< -' nếu cần thiết, nhưng có lẽ tốt hơn là bạn nên nghĩ về những gì bạn muốn làm kết quả cuối cùng, và tìm một giải pháp chức năng. –
Câu hỏi tương tự: http://stackoverflow.com/questions/23509381/lazy-sequences-in-r – cbare
Ngoài ra, Luke Tierney đã viết một [Lazy List Implementation] (http://homepage.cs.uiowa.edu/~ luke/R/lazy/lazy.pdf). – cbare