我的Haskell有点生疏了,我正在寻找恢复。我喜欢F#的一件事是与Visual Studio集成的F#交互式外壳:我几乎可以计算任何东西(包括函数和类定义),并将F#用作外壳。在Haskell中有没有类似的东西?当我使用ghci时,我不能计算函数定义。你是如何解决这个问题的?
我目前的首选设置是在haskell模式下使用Emacs,并打开交互式的ghi解释器。然而,有没有一种方法可以只评估文件的区域?
发布于 2008-12-04 20:47:36
您可以使用‘let’定义函数:
$ ghci
Prelude> let double n = n + n
Prelude> double 42
84另外,我不推荐这样做,因为(A)它是我写的,(B)它还没有开发出来,但是Halp在Emacs中很方便--它有点像集成到您的源代码缓冲区中的Haskell代码的电子表格。您可以拥有一组您感兴趣的表达式,只需一次击键即可查看它们的所有值是如何根据上次重新计算后所做的编辑而变化的。
发布于 2008-12-10 09:50:55
正如您已经注意到的,GHCi的功能相当有限-简短的函数或表达式在命令行中非常简单。对于其余的部分,我发现自己在加载模块。其中一个困难是,在使用之前,Haskell没有定义,因此通常很难从文件中提取有意义的片段。我通常发现自己在定义小模块,并不断地加载和重新加载它们。互动体验肯定不像人们想的那样好。
发布于 2008-12-05 09:22:05
Emacs的Haskell模式提供了使用intepreter的函数。因此,如果您想从您编辑的模块中运行某些函数,您可以使用C-c C-l将当前模块加载到ghci (或另一个haskell交互模块),并切换到具有交互功能的buffer,然后在那里执行一些命令
https://stackoverflow.com/questions/341953
复制相似问题