【发布时间】:2013-05-06 16:52:05
【问题描述】:
我正在检查一些代码,然后我尝试编写其中一个,但我不断收到解析“=”错误,但是当我从源代码复制粘贴代码时它工作正常,那么这之间有什么区别;
quicksort2 :: (Ord a) => [a] -> [a]
quicksort2 [] = []
quicksort2 (x:xs) =
let smallerSorted = quicksort2 [a | a <- xs, a <= x]
biggerSorted = quicksort2 [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted
还有这个;
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted
quicksort2 得到解析错误,但 quicksort 没有。那么区别在哪里呢?
错误 -> .hs:5:26: 输入 `=' 解析错误
【问题讨论】:
-
解析错误在哪里?
-
请将完整的错误信息复制并粘贴到您的问题中。
-
它的排序更大
-
顺便说一句,在考虑在 Haskell 中使用快速排序之前请记住这一点:en.literateprograms.org/… quicksort 旨在用于数组而不是列表。