gpt4 book ai didi

haskell - 这是什么类型?

转载 作者:行者123 更新时间:2023-12-04 13:57:07 25 4
gpt4 key购买 nike

Haskell新手在这里。我从 type classes 知道那=>意思是“在上下文中”。但是,我无法阅读模块 Statistics.Sample 中的以下类型

(Vector v (Double, Double), Vector v Double) => v (Double, Double) -> Double
v 上应用了哪些约束 => 的左侧?

最佳答案

Data.Vector.Generic.Vector typeclass 有两个类型参数,va在哪里 v :: * -> *是容器的类型,a :: *是容器中元素的类型。这只是 vector 中定义的向量类型的通用接口(interface)。包,特别是 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 的附加约束可持有Double s。

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

我想强调这些限制

Data.Vector.Generic.Vector v (Double, Double)
Data.Vector.Generic.Vector v Double

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

关于haskell - 这是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com