这是什么类型的?

Vor*_*rac 6 haskell types constraints

Haskell新手在这里.我从类型类中知道=>"在上下文中".但是,我无法读取模块Statistics.Sample中的以下类型

(Vector v (Double, Double), Vector v Double) => v (Double, Double) -> Double
Run Code Online (Sandbox Code Playgroud)

v左边有什么限制条件=>

bhe*_*ilr 10

Data.Vector.Generic.Vector类型类有两个类型参数,v并且a其中,v :: * -> *是容器的类型和a :: *是在容器中的元件的类型.这只是vector包中定义的矢量类型的通用接口,特别是Data.Vector.Unboxed.Vector.

这基本上是说的类型v必须能够容纳(Double, Double)Double,虽然不是同时进行.如果你要使用v ~ Data.Vector.Unboxed.Vector那么这很好用.原因是由于实施correlation,使用unzip.此功能拆分v (a, b)(v a, v b).由于correlation正在进行v (Double, Double),它需要v可以容纳Doubles 的附加约束.

此泛型类型旨在使correlation函数使用更多类型Data.Vector.Vector,包括可能在其他库中实现的任何矢量样式类型.


我想强调这些限制

Data.Vector.Generic.Vector v (Double, Double)
Data.Vector.Generic.Vector v Double
Run Code Online (Sandbox Code Playgroud)

说明您选择的任何类型v都能够持有(Double, Double)并且还能够持有Double.这为您的矢量类型指定了某些先决条件,而不是矢量的实际内容.向量的实际内容在correlation函数的第一个参数中指定.