gpt4 book ai didi

haskell - Ord a 允许我使用 "=="吗?

转载 作者:行者123 更新时间:2023-12-02 14:32:46 24 4
gpt4 key购买 nike

我正在做一些测试函数来更多地了解 Haskell,我这样做了:

constroiMSet :: Ord a => [a] -> [(a,Int)] 
constroiMSet( x:x1:xs) |x1==x =[(x,2)]

我不明白的是这个函数为什么起作用。该功能有Ord a但它使用 ==比较a 。不是 Ord a仅限>= , <= , < , >

最佳答案

如果我们看一下definition of the Ord类中,我们看到:

class <b>Eq a =></b> Ord a where
compare :: a -> a -> Ordering
(<) :: a -> a -> Bool
(<=) :: a -> a -> Bool
(>) :: a -> a -> Bool
(>=) :: a -> a -> Bool
max :: a -> a -> a
min :: a -> a -> a

所以这意味着每个类型 a 其中 Ord a 也意味着 Eq a。因此,支持 Orda 也支持 Eq,因此 (==)(/=).

关于haskell - Ord a 允许我使用 "=="吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47013492/

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