quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerOrEqual = [a | a <- xs, a <= x]
larger = [a | a <- xs, a > x]
in quicksort smallerOrEqual ++ [x] += larger
main = do
a = [ 5, 1, 9, 4, 6, 7, 3]
print quicksort a
我收到此错误:
[1 of 1] Compiling Main ( quicksort.hs, quicksort.o )
quicksort.hs:10:11: parse error on input `='
真的不理解为什么。仔细检查了几次此代码。仍然令人困惑。需要帮忙。谢谢!
你忘了let
,
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerOrEqual = [a | a <- xs, a <= x]
larger = [a | a <- xs, a > x]
in quicksort smallerOrEqual ++ [x] ++ quicksort larger -- ++ not +=
main = do
let a = [ 5, 1, 9, 4, 6, 7, 3]
print (quicksort a) -- The parens are needed too
我也修复了其他一些错误。
值得注意的是,这种快速排序功能尚不完善,因此并不是真正的快速排序功能,尽管它很漂亮。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句