在函数签名中,
然而,“... -> t a -> ...”是什么意思呢?t和a不都是类型变量吗?如果是这样,那么在Haskell中两个类型变量的并置意味着什么呢?
all
和any
,我看到了这个:Prelude> :t all
all :: Foldable t => (a -> Bool) -> t a -> Bool
Prelude> :t any
any :: Foldable t => (a -> Bool) -> t a -> Bool
然而,“... -> t a -> ...”是什么意思呢?t和a不都是类型变量吗?如果是这样,那么在Haskell中两个类型变量的并置意味着什么呢?
t
是带有参数的类型构造器。例如,如果a
是Int
,那么该类型就是Maybe Int
。 - Willem Van Onsemt
是[]
。就像将ta
解释为[a]
一样,但它更加通用。 - chi