我正在研究第二欧拉问题,但现在我只是想定义斐波那契数列。目前,我将 Fib 函数定义为
Fib 0 = 0
Fib 1 = 1
Fib x = Fib (x - 1) + Fib (x - 2)
因为我希望程序依赖于我的键盘输入,所以我使用了
main = do
putStrLn "Enter desired Fibonacci index: "
"index" <- getLine
putStrLn Fib x
并将 x 定义为x = read "index"
我很确定我把缩进和语法都搞砸了。根据我修改代码的方式,运行“ghc /dir/file.hs”会得到类似“不在范围内:数据构造函数‘Fib’”或“解析错误(可能是不正确的缩进)”之类的东西。我真的,真的不不知道我在做什么,尤其是关于如何设置 .hs 以使其对编译器友好。我已经阅读了大约 7 个关于使用 GHC 编译的教程,但他们似乎都跳过了他们解释的部分编译的基本要求。
如果有帮助,请告诉我如何更具体。我认为我试图理解的两件事是整个“主要”事物与编译的关系,以及如何让我认识到我已经将 Fib 定义为一个函数,即使它说它不在范围内。
PS:这里的缩进我想不通,Stack好像想把所有的东西都放在一行里,所以我只好把它都分开了。对不起。