gpt4 book ai didi

haskell - 如何在提示中强制解释

转载 作者:行者123 更新时间:2023-12-02 11:14:55 27 4
gpt4 key购买 nike

如何在提示(Language.Haskell.Interpreter)中强制使用解释模式?

我有这个代码:

module Main where

import Language.Haskell.Interpreter
import Control.Monad

main = do
res <- runInterpreter (test "test")
case res of
Left e -> putStrLn (show e)
Right t -> putStrLn (show t)
return ()

test :: String -> Interpreter ()
test mname =
do
loadModules [mname ++ ".hs"]
setTopLevelModules ["Main"]

将导致(基于 here 的答案):

NotAllowed "These modules are not interpreted:\nMain\n"

仅当 GHC 找到 test.o!

我已经尝试过

unsafeSetGhcOption ("-fbyte-code")

最佳答案

使用-fforce-recomp当从 GHCi/Hint 使用时,选项似乎会强制解释。

unsafeSetGhcOption "-fforce-recomp"

虽然我找不到任何文档来验证这一点,但 GHCi/Hint 重用 GHC 的重新编译检查似乎是合理的。

<小时/>

更新:进一步挖掘我发现 GHC ticket #2542 ,其中指出在模块名称前添加星号将强制在 GHCi 中进行解释。the documentation中也证实了这一点.

:load *test.hs

这似乎也适用于提示,因此这也有效:

loadModules ["*" ++ mname ++ ".hs"]

关于haskell - 如何在提示中强制解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com