gpt4 book ai didi

Haskell - 内置元组,Ord 定义为仅按第一个元素进行比较?

转载 作者:行者123 更新时间:2023-12-03 21:08:51 25 4
gpt4 key购买 nike

我对 Haskell 比较陌生,所以希望这不是一个愚蠢的问题。我正在寻找一种常见/众所周知的类型,它本质上是一个元组,但定义了 Ord 以便它只比较第一个元素。

我自己可以这样定义:

data RankedItem a = RankedItem Double a deriving (Show)

instance Eq (RankedItem a) where
(RankedItem lkey _) == (RankedItem rkey _) = lkey == rkey

instance Ord (RankedItem a) where
(RankedItem lkey _) `compare` (RankedItem rkey _) = compare lkey rkey

是否有实现此目的的内置类型或常用的第三方容器?

最佳答案

是的,存在这样的类型。这是 Arg type defined in Data.Semigroup .它的 EqOrd 实例仅根据第一个元素进行比较,它还有各种其他实例(如 Functor)根据第二个元素进行操作.

关于Haskell - 内置元组,Ord 定义为仅按第一个元素进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65333246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com