我在类里面被问到这个问题,这让我很困惑,我们得到了以下内容:
对于以下类型声明:
ranPositions :: Image -> Dims -> [Point]
getBlockSums :: Image -> Dims -> [Point] -> [BlockSum]
i :: Image
d :: Dims
以下的类型是什么? 不是上面的吗?!
ranPositions i d
getBlockSums i d
所以我的回复是这样的:
type ranPositions = Array Point Int, (Int, Int)
type getBlockSums = Array Point Int, (Int, Int)
// Because (this was given)
type Image = Array Point Int
type Dims = (Int, Int)
除了错误之外,这个问题还让我感到困惑,因为我认为函数的类型是在 ::
之后声明的,因此它已经给出了,不是吗?
我可以做一些解释,我将非常感谢任何帮助。
最佳答案
ranPosition i d
的类型是 [Point]
-(柯里化(Currying)为您提供一个返回 [Point]
的函数)
getBlockSums i d
的类型为 [Point] -> [BlockSum]
-(柯里化(Currying)为您提供一个从 [Point]< 返回函数的函数
到 [BlockSum]
)
关于haskell - Haskell 中类型的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581523/