2017-03-26 1 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

これは 'Enum'の一部であり、' succ'(essor)と呼ばれます。 – Zeta

+3

@KevinMeredithしかし、iterate succ minBoundは与えられたタイプのすべての可能な値に当てられないことに注意してください。特定のタイプのすべての値を繰り返し処理するための[universe](http://hackage.haskell.org/package/universe)パッケージも参照してください。 –