gpt4 book ai didi

haskell - 这个haskell代码中的星号是什么意思?

转载 作者:行者123 更新时间:2023-12-03 15:29:07 25 4
gpt4 key购买 nike

我在 unm-hip 包中找到了这段代码。
那么 Pixel 是一个函数吗?

class Imageable i where
type Pixel i :: *
rows :: i -> Int
cols :: i -> Int
ref :: i -> Int -> Int -> (Pixel i)
makeImage :: Int -> Int -> PixelOp (Pixel i) -> i
pixelList :: i -> [Pixel i]
pixelList i = [ ref i r c | r <- [0..(rows i - 1)], c <- [0..(cols i - 1)]]

最佳答案

作为标准 Haskell 的扩展,您可以处理“种类”。种类是类型和类型构造函数的一种非常基本的类型系统。实物*是一个简单的类型,如 Int .实物* -> *是一个类型构造函数,它接受一个类型并产生一个类型,如 Maybe : 传递一个像 Int 这样的类型作为参数,你得到类型 Maybe Int .

此代码中使用的另一个扩展名(起初我没有注意到,因为缩进丢失了)是关联类型。标准 Haskell 中的类型类可以指定该类型必须支持的许多函数。使用关联类型,它可以额外指定与该类型关联的类型和类型构造函数。

在这里,这意味着类型 i这是 Imageable 的一个实例(即表现得像图像)必须具有关联的像素类型 Pixel i ,并且这必须是简单类型(种类 *),而不是类型构造函数。

关于haskell - 这个haskell代码中的星号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807728/

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