使用Haskell组时遇到问题

use*_*248 4 haskell

我正在为下学期提前学习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)

我是函数式编程的完全初学者.我非常感谢您帮助解决我的问题.

最好的祝福.

joa*_*yra 5

您可以在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)