我剛開始自學哈斯克爾出書的「瞭解你的偉大的好哈斯克爾」,我用where
rewote快速排序在第5章:哈斯克爾快速排序:分析誤差「其中」
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) = smaller ++ [x] ++ bigger
where smaller = quicksort [a | a <- xs, a <= x]
bigger = quicksort [a |a <- xs, a > x]
,但是當我裝成GHCI 7.0.3,我得到了以下錯誤:
parse error on input '='
書上的原代碼:
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
你能幫我找到它爲什麼不適用於where
?
隨着你的編輯你已經修復了縮進,所以你不應該得到解析錯誤,所以這個問題變得無法理解......? – Francesco