Prelude声明const是一元函数。类型签名是
const :: a -> b -> a
一元函数需要一个参数。然而const函数似乎采用两个参数并丢弃第二个参数,这将使它成为二元函数。这里发生了什么?我想你可以将类型括起来
a -> (b -> a)
但我对const的实际用法非常不清楚。为什么const被明确描述为一元?
答案 0 :(得分:10)
Prelude的相关陈述实际上是
const x
是一个一元函数,对所有输入求值为x。
请注意,它表示const x
而非const
是一元函数。