9

我刚开始学习 Haskell,很难理解 Haskell 程序的“流程”。

例如在 Python 中,我可以编写一个脚本,将其加载到解释器并查看结果:

def cube(x):
    return x*x*x

print cube(1)
print cube(2)
print cube(cube(5))
# etc... 

在 Haskell 中,我可以这样做:

cube x = x*x*x
main = print (cube 5)

加载它,runhaskell它会打印125.
或者我可以使用ghci并手动输入我想测试的所有功能

但我想要的是使用我的文本编辑器,编写几个函数,一些测试,然后让 Haskell 打印一些结果:

-- Compile this part
cube x = x*x*x

-- evaluate this part:
cube 1
cube 2
cube (cube 3)
--etc.. 

这样的事情可能吗?

4

3 回答 3

13

很有可能!

$ ghci
> :l filename.hs

这将加载文件,然后您可以直接使用这些功能。

> :r

这将导致文件在您进行编辑后重新加载。无需提及该文件,它会重新加载您加载的最后一个文件。如果您ghci filename.hs最初这样做而不是:l.

于 2013-03-18T17:08:51.567 回答
8
cube x = x*x*x

main = do
    print $ cube 1
    print $ cube 2
    print $ cube (cube 3)
$ ghci cube.hs
...
ghci> main

请参阅GHCI 用户指南


我还强烈建议您查看QuickCheck库。

你会惊讶于它可以进行多么棒的测试。

于 2013-03-18T17:06:01.773 回答
4

要将 Haskell 源文件加载到 GHCi 中,请使用:load命令

cf 在 Haskell 文档中加载源文件

于 2013-03-18T17:08:53.160 回答