如何使用快速排序按列表中的ID升序排序然后显示元素?我有错误:没有(Ord FigureType)的实例。我的代码是:quicksort order by id asc
showRectangles [] = "No rectangles"
showRectangles x = concat (map showRectangle (qsort x))
showRectangle :: FigureType -> String
showRectangle (Figure id width height) = "id: " ++ show id ++ " width: " ++ show width ++ " height: " ++ show height ++ "\n";
data FigureType = Figure Int Int Int deriving(Show, Read)
qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
我不知道函数sort() - 你能告诉我如何使用它通过ID(第一个参数图)对列表进行排序? – mrquestion 2011-04-23 07:15:51
@mrq:'sort x'。 (如果你从'Ord'派生出来,它将按照宽度和高度排列,除了id。) – kennytm 2011-04-23 07:19:37
好的我已经实现了Ord,它的工作原理很多! – mrquestion 2011-04-23 07:33:15