Ответ 1
Хотя поведение считается функцией времени, зависимость от произвольного количества прошлых данных в FRP - это Bad Thing и называется утечкой во времени. То есть преобразования по поведению обычно должны быть потоковыми/реактивными в том смысле, что они не полагаются на более чем ограниченное количество прошлого (и должны аккумулировать это знание истории явно).
Итак, нет, at
нежелательно в реальной системе FRP: не следует смотреть ни в прошлое, ни в будущее. (Последнее, конечно, невозможно, если состояние будущего зависит от чего-либо внешнего по отношению к системе FRP.)
Конечно, это приводит к тому, что только возможность взглянуть на точное настоящее строго ограничивает то, что вы можете делать при написании функции для преобразования поведения: Behaviour a -> Behaviour b
становится таким же, как a -> b
, что делает много вещей мы хотели бы сделать невозможным. Но это скорее проблема поиска семантики, одной из устойчивых проблем FRP, чем что-либо еще; до тех пор, пока примитивные преобразования по поведению, которые вы предоставляете, достаточно мощны, не вызывая утечек времени, все должно быть хорошо. Для получения дополнительной информации об этом см. Мусор, собирающий семантику FRP.