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
初学菜鸟。请问这个示例程序,迭代是怎么停止的?
1
pe200012 2022-07-11 21:39:08 +08:00 via Android
空
|
2
pe200012 2022-07-11 21:41:36 +08:00
空列表的时候终止(
|
3
Edward4074 2022-07-11 21:48:15 +08:00 via iPhone
smallerOrEqual 和 large 各自为空数组时,进入第一个 case 就停止了
|
4
leomayleomay 2022-07-12 03:29:32 +08:00
pattern matching, 第一个
|
5
lqcc OP |