Haskell 不可见压痕错误导致GHCi加载失败

Haskell 不可见压痕错误导致GHCi加载失败,haskell,syntax,Haskell,Syntax,我遇到了一个由复杂的缩进引起的问题,下面是VI中的代码外观: 1 import Data.List 2 myQuickSort [] = [] 3 myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger 4 where smaller = filter ( < x ) xs 5 bigger = filter ( >=x ) xs 在编程ha

我遇到了一个由复杂的缩进引起的问题,下面是VI中的代码外观

  1 import Data.List
  2 myQuickSort [] = []
  3 myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger
  4     where   smaller = filter ( < x ) xs
  5             bigger  = filter ( >=x ) xs
在编程haskell时,我应该如何捕捉这个不可见的缩进错误

编辑: 这样写,错误就会消失。将where绑定put变量作为where写在不同的行中是一种推荐的方法吗

   myQuickSort [] = []
   myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger
       where
       smaller = filter (<x) xs
       bigger =  filter (>=x) xs
myQuickSort[]=[]
myQuickSort(x:xs)=更小的myQuickSort++[x]++myQuickSort更大
哪里
较小=过滤器(=x)xs
qs.hs:

import Data.List
myQuickSort [] = []
myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger
      where smaller  = filter ( < x ) xs
            bigger   = filter ( >=x ) xs
导入数据。列表
myQuickSort[]=[]
myQuickSort(x:xs)=更小的myQuickSort++[x]++myQuickSort更大
其中较小=过滤器(=x)xs
GHCI:

GHCi,6.8.2版:http://www.haskell.org/ghc/ :? 求救 正在加载包库。。。链接。。。完成。 前奏曲>:l qs.hs [1/1]编译主目录(qs.hs,已解释) 好的,模块已加载:Main。 *Main>myQuickSort[9,8,7,6] [6,7,8,9] 您使用的是什么版本的GHCi

你说(建议)你的程序只有那5行,但错误在第61行。此外,它位于第14列,第14列在您给出的5行中没有
=


例如,如果where在自己的行上,或者如果它在上面的行上,该程序对我来说也可以正常加载。

可能是选项卡的问题。选项卡可能看起来与一定数量的空格相同,但Haskell不会认为它们是相同的

您的问题与选项卡的扩展有关。Haskell假设一个制表符值8个空格。你的编辑可能有不同的假设。尝试在编辑器中搜索并用8个空格替换所有选项卡,然后调整间距以对齐where子句。

标记,我没有粘贴整个程序,因此错误号与源代码不匹配。我发现我真正的问题是缩进的错误。我已经重写了我的问题。或者,在Vim中:
:set et
:retab
以当前设置将制表符扩展为空格,然后
:set ts=8
以确保将来制表符为8个空格。
   myQuickSort [] = []
   myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger
       where
       smaller = filter (<x) xs
       bigger =  filter (>=x) xs
import Data.List
myQuickSort [] = []
myQuickSort (x:xs) = myQuickSort smaller ++ [x] ++ myQuickSort bigger
      where smaller  = filter ( < x ) xs
            bigger   = filter ( >=x ) xs
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Prelude> :l qs.hs [1 of 1] Compiling Main ( qs.hs, interpreted ) Ok, modules loaded: Main. *Main> myQuickSort [9,8,7,6] [6,7,8,9]