Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 类型类w/`min`?_Class_Haskell - Fatal编程技术网

Class 类型类w/`min`?

Class 类型类w/`min`?,class,haskell,Class,Haskell,给定Ord类型类别: 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

给定
Ord
类型类别:

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
前奏曲>:一个单词
类Eq a=>Ord a,其中
比较::a->a->排序
(a)->Bool
(a)->Bool
(>)::a->a->Bool
(>=)::a->a->Bool
max::a->a->a
min::a->a->a
是否有类型类为给定类型提供
min:a
字段/函数

例如:


min::Int
将输出您要查找的最小
Int
值。

其中包含。

您要查找的是typeclass。谢谢(如果可以,将接受)!我看到这个类型类有函数:
minBound
maxBound
。是否有
step
函数,即如何将一个元素从
minBound
增加到
maxBound
,在另一个类型类中可用?@KevinMeredith,它是
Enum
的一部分,名为
success
(essor)@KevinMeredith但请注意,
iterate suc minBound
不能保证命中给定类型的所有可能值。另请参阅该包,该包专门用于迭代给定类型的所有可能值。谢谢,@DanielWagner。请您给我解释一下为什么它是“不能保证命中给定类型的所有可能值?”@KevinMeredith
succ(1.4::Double)
给出了
2.4
。现在
Double
不是
Bounded
的成员,因此没有
minBound
。但是如果我们接受
Enum Double
的行为作为有效的
Enum
实例(老实说,我对此有点怀疑),那么
suc
可以“跳过”“可能的值,因此没有理由期望
iterate such minBound
会在
Enum
Bounded
中为任意类型命中所有内容。也就是说,前奏中
Bounded
的唯一实例是Word、Ordering、Int、Char、Bool和()(及其元组),它们的行为应该是合理的。