我刚刚开始学习Haskell,并且已经查看了现有的答案,所以不要为此向我发起攻击,但为什么我无法使用{{1}在终端中加载.hs
文件}}?
我在文件中的代码是:
:load -W filename.hs
如何将此文件加载到ghci中,然后使用正确的格式将整数列表添加为争论?
答案 0 :(得分:2)
正如评论中暗示的那样,您的代码严重一致。 case ... of
的各个分支必须缩进以告诉Haskell它们“属于”它。这意味着你应该写:
doubleList :: [Integer] -> [Integer]
doubleList list = case list of
[] -> []
(x:xs) -> x*2:list xs
然后,在表达式x*2:list xs
中,您将list
类型[Integer]
应用于xs
类型的[Integer]
。这只是不会出现问题。你可能想要写一个递归调用 function doubleList
。这意味着你应该写:
doubleList :: [Integer] -> [Integer]
doubleList list = case list of
[] -> []
(x:xs) -> x*2:doubleList xs
对于-W
选项,在ghci
中加载文件与使用ghc
进行类型检查略有不同:您无法像:load
那样将参数传递给ghc
1}}。正如@chi解释的那样,你必须使用:set
来设置标志。