我花了几天时间在 Haskell 中开发一个程序,同时学习这门语言。现在我意识到我需要调用 Arpack(一个 Fortran 库)或 Arpack++(一个对 Arpack 的 C++ 包装器)——我找不到带有 Haskell 绑定的 Lanczos 方法的良好实现。有没有更有经验的 Haskell 程序员知道这会有多困难?
我已经能够通过 Ubuntu 的存储库安装“.so”(“共享对象”)版本的 libarpack 和 libarpack++,但我不确定这是否足够。我怀疑我最终需要从源代码构建 Arpack++,这是可能的,但是我遇到了很多构建错误,所以这需要时间。有没有办法只使用“.so”文件,而不知道究竟是哪个版本的头文件用于生成它们?
我正在考虑使用 GreenCard,因为它看起来像是维护得最好的 Haskell/C 桥。不过我找不到太多文档,所以我想知道它是否也支持 C++。
我也开始怀疑是否应该用 Python 重写我的程序,并使用 scipy 调用 Arpack,但我已经花了几天时间来编写 Haskell。我也很喜欢 Haskell,所以我希望我能完成这项工作。我想我的总体问题是:使用 Haskell 进行这项工作会涉及什么?
非常感谢。