5

我一直在阅读有关Haskell的许多教程。 但是,我无法让编译后的应用程序在windows (32 位)上的多核 (我有英特尔四核) 上运行。

我尝试了很多事情:

但没有运气。

编译后的应用程序仅在一个内核上 100% 运行。

有任何想法吗?

代码:

import Control.Parallel
import Control.Monad
import Text.Printf

fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = l `pseq` r `pseq` l+r
    where
    l = fib (n-1)
    r = fib (n-2)

main = forM_ [0..350] $ \i ->
        printf "n=%d => %d\n" i (fib i)
4

2 回答 2

6

使用 par 而不是 pseq 似乎可以解决它。

于 2009-03-08T06:07:50.430 回答
5

如果 vili 是正确的(我无法测试,因为我没有任何 MS 盒子),它可能与这个错误有关

于 2009-03-08T06:37:29.843 回答