问题描述
我有兴趣在 GHCI 中获取 :type-at 命令的输出以获取一长串模块。如果我手动执行 :type-at MyFile.hs M N M P
,它工作正常;然而,对于这么多模块,我更希望有一种方法可以自动执行查找信息并将其存储到文件的过程。
有吗 a) 一种将 ghci 与输入文件一起使用的方法,该文件告诉它要处理的所有命令,或 b) 一种定义宏的方法,让我循环遍历值列表并将 :type-at 命令应用于所有这些值?
谢谢!
解决方法
是否有一种方法可以将 ghci 与输入文件一起使用,该文件告诉它要处理的所有命令
有。您可以按如下方式定义自定义 :source
命令:
> :def source readFile
> let x = length "hello"
> :source GHCiTest.txt
x :: Int
5
5
x :: Int -- Defined at <interactive>:6:5
hello
在上面的示例中,GHCiTest.txt
包含以下 GHCi 命令,这些命令由 :source
一一运行:
:t x
print x
x
:i x
putStrLn "hello"
或者,您可以使用自定义 .ghci
文件启动 GHCi,该文件在启动时自动 :source
d。