繁体   English   中英

在 Haskell 应用程序中创建 Haskell REPL

[英]Creating a Haskell REPL within a Haskell application

我正在尝试在我的 Haskell 应用程序之一中嵌入 Haskell REPL。 这个想法是默认情况下只加载 Haskell 库的一个子集,外加我自己的一组函数,用户将使用这些函数与环境交互。

为了解决这个问题,我知道一种方法是创建一个(迷你)Haskell 解析器 + 评估器和 map 我的 mini-Haskell 解析器的函数到实际的 Haskell 函数,但我确信有更好的方法来做到这一点。

有没有一种使用 Haskell 为 Haskell 构建 REPL 的好方法?

一些已经存在的东西:

  • GHCi,当然,无论是从能够查看它的实现方式还是能够直接使用它的意义上来说(即,让您的 REPL 只通过 stdin/stdout 与 GHCi 对话)。
  • 完整的 GHC API ,它可以让您连接到 GHC 并让它为您完成所有繁重的工作——加载文件、跟踪依赖项、解析、类型检查等。
  • hint ,它是 GHC API 的一个子集的包装器,侧重于交互式解释而不是编译——这似乎适合您想要做的事情。
  • mueval ,一个对加载的模块、资源使用等有限制的评估器,基本上是一种“安全”的交互模式。 如果您曾经在#haskell IRC 频道中过,那就是 lambdabot 使用的东西。

以上所有内容都假设您不想自己编写 Haskell 解释器,可能就是这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM