当我正确地对齐所有内容时,为什么在Haskell中出现“输入'='”错误的“解析错误”?

时间:2013-06-05 20:38:24

标签: haskell notepad++ ghci

我目前正在从在线版本的Learn You a Haskell中学习Haskell,我在第4章:函数中的语法。在阅读本书的过程中,我将所有示例函数逐字编入我的文本编辑器(Notepad ++)并在GHCI上运行。

我所做的最新功能是开始惹恼我(这是第4章的卫兵,卫兵!部分)。

initials :: String -> String -> String
initials firstname lastname = [f] ++ "." ++ [l]
    where   (f:_) = firstname
            (l:_) = lastname

这是我的代码,它也是本书中显示的代码。每当我自己编写它时,GCHI总是给我解析错误。但是,当我从书中复制/粘贴它时,它可以工作。有趣的是,没有区别。我将代码复制/粘贴到我的代码上,它们之间几乎没有区别。我这样做了好几次,所以我确定我不会妄想。

为什么会这样?我该如何解决?我一开始查了一下,但我看到的只是“where”之后的两个语句必须在同一列中对齐。我这样做。它仍然不起作用。

1 个答案:

答案 0 :(得分:3)

您是否正在使用制表符并且不一致地使用制表符(例如,在某些行和空格中使用制表符)?

Haskell report说:

  
      
  • 制表位相隔8个字符。
  •   
  • 制表符会导致插入足够的空格,以便将当前位置与下一个制表位对齐。
  •   

建议永远不要使用标签并始终使用空格!