我正在为下学期提前学习Haskell而且我被困在测试组.我直接在WinGHCi中尝试并在文本文件中编写函数.阅读文档(haskell.org,zvon.org)我看到模块Data.List是必需的,所以我在WinGHCi中做了以下事情:
:l Data.List
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:模块'Data.List'是一个包模块
然后,我使用文本编辑器编写了一个函数,如下所示:
import Data.List
group "aaaabbbbbbbccddd"
Run Code Online (Sandbox Code Playgroud)
加载(编译)时我再次收到错误:
_Haskell.hs:2:1:
Parse error: naked expression at top level
Perhaps you intended to use TemplateHaskell_
Run Code Online (Sandbox Code Playgroud)
我是函数式编程的完全初学者.我非常感谢您帮助解决我的问题.
最好的祝福.
您可以在GHCI中使用它,就像您在文本文件中导入它一样.
Prelude> import Data.List
Prelude Data.List> group "aaaaabbbbbbcccccddd"
["aaaaa","bbbbbb","ccccc","ddd"]
Run Code Online (Sandbox Code Playgroud)
顶级的裸体表达意味着:你不能在顶层有一个裸体表达.在文本文件中尝试此操作.
import Data.List
testGroup :: (Eq a) => [a] -> [[a]]
testGroup lst = group lst
Run Code Online (Sandbox Code Playgroud)
这将创造奇迹.
~/temp ??? ghci h.hs
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( h.hs, interpreted )
Ok, modules loaded: Main.
*Main> testGroup [2]
[[2]]
Run Code Online (Sandbox Code Playgroud)