Hos*_*ers 12 parallel-processing concurrency haskell alice future
Haskell是否具有相当于Alice将变量绑定到未来的能力?
val a = spawn foo;
Run Code Online (Sandbox Code Playgroud)
其中foo是一些功能.
我知道Haskell支持频道和线程; 我希望语法像Alice一样自然地将值绑定到未来并生成一个线程来计算它而不必处理细节.
Dan*_*kov 15
您可以使用par从Control.Parallel作为
a `par` f a b c
where
a = foo
Run Code Online (Sandbox Code Playgroud)
这是对a可以在另一个线程中评估的运行时的提示.
Dan*_*att 12
有趣的是,我刚刚读了Simon Marlow发表的一篇新文章:Haskell中的并行编程以及明确的未来.显然,他和其他人一直在说意图是不是更自然和明确了一些新的并行编程抽象par和pseqAPI的.
不在标准库中,但是
http://ghcmutterings.wordpress.com/2010/08/20/parallel-programming-in-haskell-with-explicit-futures/
data Future a = Future a
fork :: Eval a -> Eval (Future a)
fork a = do a' <- rpar (runEval a); return (Future a')
join :: Future a -> Eval a
join (Future a) = a `pseq` return a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3547 次 |
| 最近记录: |