2015-12-04 28 views
2

的文檔accumB說:獲取更新無延遲

注:與步進,行爲價值變動「後小幅 」的事件發生。這允許遞歸定義。

在我的情況下沒有遞歸,但我想獲得更新「現在」,而不是「稍後」。爲什麼沒有accumB的特殊版本?我猜,我錯過了明顯的東西?


編輯:在我的應用程序有data Config,其保持各種配置值和一堆Event (Config -> Config),當用戶改變在GUI一些值被燒製。現在,我希望我的程序的其他部分隨時訪問Config,這就是爲什麼我在那裏使用Behavior Config。問題在於,當更改事件被觸發時,行爲仍然具有舊值Config,所以我無法立即觀察到此更改。

+0

如果有'accumB'的特殊版本,那麼就不可能在相互遞歸中自由使用行爲和事件。您能否詳細說明您所考慮的特定編程問題?有可能'accumE'可能會有所幫助。 –

+0

@ HeinrichApfelmus我已經更新了我的問題。 – arrowd

回答

1

如果你有一個Behavior Conf,那麼你可以通過Applicative類組合器從它做出其他行爲。例如,它可能是你把它變成一個Behavior String然後顯示在一個文本字段。一旦將行爲提供給這樣的UI小部件,小部件代碼將確保顯示行爲的值。

如果您需要明確指示配置何時發生變化,那麼Event Conf可能更合適。您可以使用accumE函數,它將包含新的值。