我刚刚开始学习haskell,我真的不明白如何使用我在GHCi解释器中使用普通编辑器创建的文件......
这是我的文件列表 - comprehension.hs
main = do
let substantive = [" Student", " Professor", " Tutor"]
let adjektive = ["fauler", "fleissiger", "hilfreicher"]
let tupel = [a ++ s | a <- adjektive, s <- substantive]
return (tupel)
当我在GHCi中加载文件时,它可以正常工作,但后来我无法使用它。因此,当我尝试执行tupel时,它无法工作。
Prelude> :load list-comprehension.hs
[1 of 1] Compiling Main ( list-comprehension.hs, interpreted )
Ok, modules loaded: Main.
*Main> tupel
<interactive>:3:1: error: Variable not in scope: tupel
当我尝试获取其他变量时也会发生这种情况。 我已经对此进行了很多研究,但我发现我的文件有什么问题或者这通常是如何工作的...... 我完全不确定“main = do”和“return”部分,但这是唯一一个在加载时不会产生解析错误的开头和结尾。
答案 0 :(得分:1)
GHCi只有范围内文件的顶级定义。试试这个:
main :: IO ()
main = print tupel
substantive :: [String]
substantive = [" Student", " Professor", " Tutor"]
adjektive :: [String]
adjektive = ["fauler", "fleissiger", "hilfreicher"]
tupel :: [String]
tupel = [a ++ s | a <- adjektive, s <- substantive]