在 haskell 中加载和使用代码文件

load and use code file in haskell

我才刚刚开始学习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" 部分,但这是加载时唯一不会产生解析错误的开始和结束。

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]