【发布时间】:2011-07-28 17:42:00
【问题描述】:
我正在考虑一种函数式语言,它可以很好地适应我在 FreeBSD、OSX、iOS 下的 C/Objective-C 环境。看起来我最好的选择是为特定函数创建函数式语言库,用 Haskell 编写,使用 GHC 编译,并使用 FFI 将此函数式代码作为标准 C 调用调用。
我的问题是,在这种情况下我该如何处理并发? 一个使用函数式语言的动机是,对于我想要对不可变数据集进行操作的问题,我想要进行大量并行化。但是,使用我在这里详述的方法,我会得到任何并行化吗?看来我可以编译并指定使用 2 个线程,但是有什么方法可以使用 GCD 而不是线程(出于所有原因 GCD 比线程更好,例如每个平台的并行化量自动缩放)?或者,像我描述的那样使用 FFI,我是否完全失去了多线程的能力?
这种语言似乎最适合我正在尝试做的事情,但我想在投入大量时间真正学习它之前了解它是否合适
【问题讨论】:
-
你可以看看 Erlang 的并行和分布式函数式编程。
-
您需要说明更多细节——您正在开发什么样的应用程序?您希望在 Haskell 与 C 中编写什么样的函数?您想利用什么级别的并行性?
标签: haskell multicore ghc grand-central-dispatch ffi