我有一个Haskell的自定义数据类型,我想作为一个键使用Data.Map,Data.Graph以及其他的查找表。
data State = State
{ playerIdx :: Int
, piles :: [Int]
} deriving Show
Run Code Online (Sandbox Code Playgroud)
我如何使它可订购?以下似乎不起作用:
data State = State
{ playerIdx :: Int
, piles :: [Int]
} deriving (Show, Ord)
Run Code Online (Sandbox Code Playgroud)
如果您将某物作为 的实例Ord,则它也需要是 的实例Eq,因此您应该同时派生Eq和Ord:
data State = State
{ playerIdx :: Int
, piles :: [Int]
} deriving (Eq, Ord, Show)Run Code Online (Sandbox Code Playgroud)