我想排序兩種不同類型的列表。要做到這一點,我首先創建一個Wrapper
類型,所以我可以mappend
這兩種類型。不同類型的排序列表
- 是否有
Wrapper
在這裏輸入正確的方法? - 我不是我應該怎麼做實際的排序清楚,如果我想用增量鍵進行排序(即
fooDelta
和barDelta
)
代碼:
import Data.List (sortBy)
import Data.Monoid
import Data.Ord (comparing)
data Foo = Foo
{ fooLabel :: String
, fooDelta :: Int
} deriving (Show, Eq)
data Bar = Bar
{ barLabel :: String
, barDelta :: Int
, barAnother :: String
} deriving (Show, Eq)
data Wrapper = WFoo Foo | WBar Bar
deriving (Show, Eq)
sortTest :: [Wrapper]
sortTest =
listFoo <> listBar
where
listFoo = [WFoo $ Foo "label1" 0, WFoo $ Foo "label2" 2]
listBar = [WBar $ Bar "label1" 1 "another1"]
您對元素的排序是什麼? – dkasak
對不起,我已經更新了排序要求的問題。 – amitaibu