簡體   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