我刚刚开始学习Haskell,并且很难理解Haskell程序的"流程".
例如在Python中,我可以编写一个脚本,将其加载到解释器并查看结果:
def cube(x):
return x*x*x
print cube(1)
print cube(2)
print cube(cube(5))
# etc...
Run Code Online (Sandbox Code Playgroud)
在Haskell中,我可以这样做:
cube x = x*x*x
main = print (cube 5)
Run Code Online (Sandbox Code Playgroud)
加载它,runhaskell它将打印125.
或者我可以使用ghci并手动输入我想要测试的所有功能
但我想要的是使用我的文本编辑器,编写几个函数,一些测试,并让Haskell打印出一些结果:
-- Compile this part
cube x = x*x*x
-- evaluate this part:
cube 1
cube 2
cube (cube 3)
--etc..
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
Dan*_*ons 14
很可能!
$ ghci
> :l filename.hs
Run Code Online (Sandbox Code Playgroud)
这将加载文件,然后您可以直接使用这些功能.
> :r
Run Code Online (Sandbox Code Playgroud)
这将导致在您进行编辑后重新加载文件.无需提及该文件,它将重新加载您加载的最后一个文件.如果你ghci filename.hs最初做的话,这也会有效:l.
cube x = x*x*x
main = do
print $ cube 1
print $ cube 2
print $ cube (cube 3)
Run Code Online (Sandbox Code Playgroud)
$ ghci cube.hs
...
ghci> main
Run Code Online (Sandbox Code Playgroud)
请参阅GHCI用户指南.
我还强烈建议您查看QuickCheck库.
你会惊讶于它的测试结果如何令人惊叹.