gpt4 book ai didi

haskell - 如何使用 picosat haskell 绑定(bind)并行运行 SAT 调用?

转载 作者:行者123 更新时间:2023-12-02 12:22:56 24 4
gpt4 key购买 nike

import Picosat
import Control.Applicative

main :: IO ()
main = do
dimacsList1 <- (read <$> getLine) :: IO [[Integer]]
dimacsList2 <- (read <$> getLine) :: IO [[Integer]]

res1 <- solve dimacsList1
res2 <- solve dimacsList2

putStrLn $ (show res1) ++ " " ++ (show res2)

问题:如何更改上述示例以并行运行两个 sat 调用,即使用并发?如果有不同的选择,我对性能感兴趣。

(只是检查一下:据我了解,ST monad 是正交的,不能与并行化/并发结合使用。ST monad 一开始让我有点困惑,这是我问这个问题的原因之一.)

最佳答案

最简单的方法是使用 async图书馆。也许是这样的。

[res1, res2] <- mapConcurrently solve [dimacsList1, dimacsList2]

关于haskell - 如何使用 picosat haskell 绑定(bind)并行运行 SAT 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com