Играя с внедрением FRP, я обнаружил, что одна вещь сбивает с толку: что делать с прошлым? По сути, я понимал, что смогу сделать это с помощью Behavior в любой момент:
beh.at(x) // where time x < now
Похоже, что это может быть проблематичным с точки зрения производительности в таком случае:
val beh = Stepper(0, event) // stepwise behaviour
Здесь мы видим, что для оценки поведения в прошлом нам нужно сохранить все события, и в конечном итоге мы будем выполнять (в худшем случае) линейное сканирование каждый раз при выборке.
Хотим ли мы, чтобы эта возможность была доступна, или поведение должно быть разрешено для оценки только в то время, когда >= сейчас? Хотим ли мы вообще показать программисту функцию at
?