在example file之后,我尝试动态地调用IO操作。
testHint :: Interpreter ()
testHint = do
setImportsQ [("Prelude", Nothing)]
let somecode = "putStrLn \"some string\""
interpret somecode (as :: IO ())
say "hello"不幸的是,字符串"some string"从未打印过。我也尝试调用writeFile,但也没有创建任何文件。
那么,需要什么来启用这些副作用呢?谢谢!
发布于 2013-06-08 08:38:57
interpret不会自己运行任何IO操作。它只是评估它并将其返回给您,然后您必须自己运行它,例如使用liftIO
interpret somecode (as :: IO ()) >>= liftIOhttps://stackoverflow.com/questions/16994545
复制相似问题