haskell - 使用 GHC API 评估 Haskell 语句/表达式

标签 haskell runtime evaluation ghc ghc-api

对于我正在编写的工具 (http://hackage.haskell.org/package/explore),我需要一种方法来在运行时读取 haskell 函数定义,将它们应用于我的工具中的值并检索其应用程序的结果。

谁能给我一个使用 GHC(6.10.4 或 6.12.1)API 的非常基本的示例?

在运行时从文件中读取的示例函数定义:

f x = 10**(4/1102*x - 1)

预期的程序输出
--mapM_ print $ map f [428, 410, 389]
3.577165388142748
3.077536885227335
2.5821307011665815

!!更新!!

我发布了一个快速答案,但它在执行目录中创建了一个目标文件,任何避免这种情况和避免所有文件 IO 的提示都是最受欢迎的。我还希望看到一个在内存中完成所有操作的版本:例如,用户在 GUI 中提供函数定义,并且编译/评估不会创建任何目标文件。

最佳答案

使用hint .它是一个围绕 GHC API 的类似 GHCi 的包装器,使用起来并不难。

如果你想要一个使用它的例子,我 used it in my Yogurt project .

关于haskell - 使用 GHC API 评估 Haskell 语句/表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2451354/

相关文章:

haskell - 是否可以在函数或仿函数中定义组合模式?

java - 如何从 java 类路径中的网络目录正确加载资源?

math - 我应该在数学游戏中使用表达式解析器吗?

haskell - Haskell 中的求值是如何工作的,对于有约束的表达式

Haskell 快速检查生成和测试玫瑰树?

haskell - Cabal 相当于 "pip install -U -r requirements.txt"?

windows - 在 Windows 上安装 Haskell,cabal 配置

iphone - Objective-C : How to improve repetitive method implementations using method forwarding

java - 在执行期间,Java 程序如何知道它使用了多少内存?

python - 为什么 1+++2 = 3?