4

来自haskell.org

quicksort :: Ord a => [a] -> [a]
quicksort []     = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
    where
        lesser  = filter (< p) xs
        greater = filter (>= p) xs

我的问题是“p”在这里代表哪个词?换句话说,为什么(p:xs)而不是(x:xs)

4

1 回答 1

10

我刚刚发现了答案:

(p:xs)左侧的模式代表带有头部元素的非空列表p(用作枢轴元素)

“p”代表“枢轴”。

于 2013-04-17T19:11:02.927 回答