当前位置:  开发笔记 > 编程语言 > 正文

Haskell超时分歧计算

如何解决《Haskell超时分歧计算》经验,为你挑选了0个好方法。

我正在尝试在Haskell中编写一个安全的超时评估函数.代码如下

import System.Timeout

compute, compute' :: Int -> Int
compute  i = sum [1..300000 + i]
compute' i = last $ repeat i

timedComp :: Int -> a -> IO (Maybe a)
timedComp timeLeft toCompute =
        timeout timeLeft go
    where
        go = toCompute `seq` return toCompute

main = do
    res <- timedComp 10000 (compute 0)
    print res

    res' <- timedComp 10000 (compute' 0)
    print res'

(我知道我只评价WHNF.)

当我运行main时,我只输出一个Nothing,然后程序挂起.我试图编译并运行程序多线程,但它没有帮助.试用GHC 7.6.3和7.8.3.有什么建议?

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有