我正在尋找一種在ST-Monad中並行運行兩個計算的方法。我正在構建一個相當大的數組(使用STUArray),我想並行執行它。Haskell中的並行monad映射?像parMapM?
到目前爲止,我發現this和this Q &一個在這裏計算器,但先不中我的案件,不適用,因爲它只有純代碼,並與IO單子第二交易價格 - 但我在一個狀態線程。
我也發現了monad-parallel包,但它需要我有一個ST的「MonadParallel」的實例。此外,monad-par軟件包不支持純粹的計算或IO monad。
有沒有辦法在ST內進行並行單子計算?
並行構建大型數組聽起來像是在純代碼而非ST中最好的做法。我不認爲你可以提供更多關於你想要在每個單元格中放置什麼的信息,以及爲什麼要使用ST?可能會出現問題,例如,如果您針對每個單元在ST monad中運行單獨的操作,那麼實際上並不能很簡單地並行執行(與IO不同),ST並不真正爲線程間的通信提供原語。 – DarkOtter