2017-03-26 25 views
3

鑑於Ord類型類:類型類w /`min`?

Prelude> :i Ord 
class Eq a => 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 

有沒有一種類型的類,對於一個給定類型提供了min : a場/功能?

實施例:

min :: Int將輸出的最小Int值。

+3

你在找什麼是['Bounded'](http://hackage.haskell.org/package/base-4.9.1.0/docs/Prelude.html#t:Bounded)typeclass。 – baxbaxwalanuksiwe

回答

11

您在尋找Bounded,其中包含minBound

+0

謝謝(能接受時)!我看到這個類型類具有函數:'minBound'和'maxBound'。是否有'step'函數,即如何將一個元素從'minBound'增加到'maxBound',在另一個類型類中可用? –

+4

@KevinMeredith是'Enum'的一部分,並且被稱爲'succ'(essor) – Zeta

+3

@KevinMeredith但是要小心,'iterate succ minBound'不能保證達到給定類型的每個可能的值。另請參閱[universe](http://hackage.haskell.org/package/universe)包,該包專門用於遍歷給定類型的所有可能值。 –