Я читал "Функциональное реактивное программирование" , и хотя я не использовал моноды на любом языке, я не могу помогите, но увидите их повсюду в дизайне FRP.
Этот вопрос отвечает, есть некоторые фантастические описания того, что такое функциональное реактивное программирование, и я не буду пытаться воспроизвести это здесь. В принципе, FRP создает отношения между значениями, которые меняются со временем.
Неужели это невозможно представить монадически? Инкапсулируйте код, для которого требуются значения, которые со временем изменяются в монаде, назовите его Signal
, а затем используйте эти сигналы, как это делается (используя простоту Haskell для простоты).
do
mx <- mouseX
my <- mouseY
wave <- currentTime >>= liftM sin
-- do some stuff with these values
Или есть ли еще FRP, чем я понимаю? Существуют ли парадигмы, которые препятствуют использованию такого простого представления с использованием монад? Или это действительное (если возможно упрощенное) понимание того, как работает FRP?