【发布时间】:2017-12-10 02:36:27
【问题描述】:
我的目标是为ghci 提供一些步骤以从 bash 脚本运行,然后干净地退出。在线评论says使用runhaskell为此。
这是我正在尝试运行的command:
ghci> import System.Random
ghci> random (mkStdGen 100) :: (Int, StdGen)
预期结果类似于:
(-3633736515773289454,693699796 2103410263)
当我将其放入文件 randomtest.hs 并使用 runhaskell 执行时,我收到以下错误:。
randomtest.hs:3:1: error:
Invalid type signature: random (mkStdGen 100) :: ...
Should be of form <variable> :: <type>
看来我不能使用runhaskell方法来盲目执行ghci输入。
现在解决这个问题的方法是在传递给runhaskell的文件中添加额外的命令:
main = do print (random (mkStdGen 100) :: (Int, StdGen))
我的目标是自动运行我正在使用的 haskell 课程的 ghci 工作。我希望能够从 bash 脚本运行 ghci 命令 - 以 ghci 期望的格式,并让它干净地从 ghci 退出(或运行它的任何东西)。
我的问题是:有没有办法编写 ghci 会话的脚本?
【问题讨论】:
-
您是否尝试过通过 shell 将脚本传送到 GHCi 中?例如:
ghci < filename。如果您只想运行一些命令然后退出,那应该可以正常工作。 -
谢谢@JonPurdy - 我试过了 - 得到了输出,但是在很长的命令序列中,如果没有看到输入,很难看出你在哪里 - 有时会排除换行符。这会在紧要关头起作用,但我愿意接受更好的事情。