Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 使用let-in.hs文件_Haskell - Fatal编程技术网

Haskell 使用let-in.hs文件

Haskell 使用let-in.hs文件,haskell,Haskell,我正在使用Notepad++和WinGHCi做一些家庭作业,我必须定义一个小“数据库”。格式是任意的,我不认为这是我错的地方。总之,以下是我在*.hs文件中使用的内容: let studentDB = [ ("sally", ["cpsc110", "cpsc312", "cpsc204"]), ("jim", ["cpsc110", "cpsc313"]), ("bob", ["

我正在使用Notepad++和WinGHCi做一些家庭作业,我必须定义一个小“数据库”。格式是任意的,我不认为这是我错的地方。总之,以下是我在*.hs文件中使用的内容:

let studentDB = [
                ("sally",   ["cpsc110", "cpsc312", "cpsc204"]),
                ("jim",     ["cpsc110", "cpsc313"]),
                ("bob",     ["cpsc121", "cpsc303", "cpsc212"]),
                ("frank",   ["cpsc110", "cpsc212", "cpsc204"]),
                ("billy",   ["cpsc312", "cpsc236"]),
                ("jane",    ["cpsc121"]),
                ("larry",   ["cpsc411", "cpsc236"]) ]
WinGHCi给了我这个错误:a1.hs:118:1:解析错误(可能是不正确的缩进)

我试着把元组的标签盖在或上,把我的列表括号放在不同的行上,但什么都做不到。我认为一些较小的东西可以帮助我跟踪bug,所以我改为:

let s = []

但这也给了我同样的错误。这是一个缩进错误,可能是由于一些古怪的记事本++行为?还是我的哈斯克尔错了?谢谢。

我想您可能认为*.hs文件的内容与您可以在ghci中键入的内容类似。那是不对的。当您在ghci中键入内容时,实际上是在
do
块中键入内容。因此,以下语法是正确的:

main = do
    let s = []
    -- do more stuff
但是,在*.hs文件的顶层,情况有所不同。let构造实际上是

let s = [] in
    codeThatReferencesS
如果要定义顶级绑定,只需说

s = []