Я понимаю, что не каждый компонент функционального реактивного программирования (FRP) может быть реализован в большинстве императивных языков исключительно в результате того, как язык был разработан.
Однако можно ли использовать, скажем, события в C# для достижения аналогичного эффекта, когда изменение некоторых входных значений приводит к каскадному обновлению различных объектов? Или я ответил на свой вопрос, и кроме вариаций паттерна "Наблюдатель" больше ничего сделать нельзя? А как насчет других императивных языков помимо C# (которые я упоминаю здесь только для знакомства)?