Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Haskell类型类-div和/?_Haskell_Read Eval Print Loop - Fatal编程技术网

Haskell类型类-div和/?

Haskell类型类-div和/?,haskell,read-eval-print-loop,Haskell,Read Eval Print Loop,当我查询Ghci中div中缀运算符和/运算符的类型时,我发现div具有签名(div)::积分a=>a->a,而/具有签名(/)分数a=>a->a。虽然它们完成了几乎相同的事情,但类型类分数和积分之间有什么区别?这些操作在概念上有区别: div是带余数的除法(请参阅) (/)是分数除法-这是对(*) 思考5/2=2.5vs5`div`2=2 这两个类之间的区别只是 Integral用于数字,您可以使用 而分数是以a/b的形式表示类似有理数的数字-想想1/2或2/7,等等 实际上,如果将分数

当我查询Ghci中
div
中缀运算符和
/
运算符的类型时,我发现
div
具有签名
(div)::积分a=>a->a
,而
/
具有签名
(/)分数a=>a->a
。虽然它们完成了几乎相同的事情,但类型类
分数
积分
之间有什么区别?

这些操作在概念上有区别:

  • div
    是带余数的除法(请参阅)
  • (/)
    是分数除法-这是对
    (*)
思考
5/2=2.5
vs
5`div`2=2

这两个类之间的区别只是

  • Integral
    用于数字,您可以使用
  • 分数
    是以
    a/b
    的形式表示类似有理数的数字-想想
    1/2
    2/7
    ,等等
实际上,如果将
分数
积分
操作(如
div
(/)
)混合在一起,这是一个常见的问题,因为就在前奏曲中,没有类型是这两个类的实例,因此最终会得到一个通常无法计算的类型良好的表达式


通常的解决方法是使用
frompintegral
将其转换为您所针对的通用
Num
实例。

这些操作在概念上存在差异:

  • div
    是带余数的除法(请参阅)
  • (/)
    是分数除法-这是对
    (*)
思考
5/2=2.5
vs
5`div`2=2

这两个类之间的区别只是

  • Integral
    用于数字,您可以使用
  • 分数
    是以
    a/b
    的形式表示类似有理数的数字-想想
    1/2
    2/7
    ,等等
实际上,如果将
分数
积分
操作(如
div
(/)
)混合在一起,这是一个常见的问题,因为就在前奏曲中,没有类型是这两个类的实例,因此最终会得到一个通常无法计算的类型良好的表达式


通常的解决方法是使用
from integral
将其转换为您目标的通用
Num
实例。

它们根本不做相同的事情-
div
是带余数的除法,
/
是。。。好的,分数除法-想想
5/2=2.5
vs
5`div`2=2
-你能看出区别吗这两个类之间的区别在于-
Integral
适用于可以用余数除法的数字,而分数适用于有理数(
a/b
)。。谢谢:-)@Carsten:你能把这个作为一个更好的可视性的答案吗?谢谢它们根本不做相同的事情-
div
是用余数除法,
/
是。。。好的,分数除法-想想
5/2=2.5
vs
5`div`2=2
-你能看出区别吗这两个类之间的区别在于-
Integral
适用于可以用余数除法的数字,而分数适用于有理数(
a/b
)。。谢谢:-)@Carsten:你能把这个作为一个更好的可视性的答案吗?谢谢