'daki tepki (işlev) işlevindeki zaman farkı Şu anda Haskell ve Yampa'yı öğreniyorum ve tepki fonksiyonu hakkında bir sorum var. Tür imza görebileceğiniz gibiYampa
reactimate :: IO a -- init
-> (Bool -> IO (DTime, Maybe a)) -- sense
-> (Bool -> b -> IO Bool) -- actuate
-> SF a b -- signal function
-> IO()
, duyu fonksiyonu için çıkış parçası fonksiyonunun mevcut ve önceki çağrı arasındaki zaman farkıdır. Gördüğüm örneklerde, bu zaman farkı, bir önceki aramanın değerini korumak için bir IORef kullanılarak, anlamın içinde "manuel" olarak hesaplanır.
Dışsal bir durum kullanarak zaman farkını takip etmeniz gerektiği garip görünüyor, bu hesap neden tepki fonksiyonunda yapılmıyor? IORef, bunun üstesinden gelmenin iyi bir yolu mu?