为什么Haskell中的$运算符具有如此奇怪的类型?

时间:2019-07-09 22:39:19

标签: haskell types

根据Hackage$运算符的类型为

($) :: forall r a (b :: TYPE r). (a -> b) -> a -> b 

我一直以为是

($) :: (a -> b) -> a -> b

文档中有一些解释

  

请注意,($)在其结果类型中是多态的,因此foo $ True,其中foo :: Bool-> Int#的类型正确

但是我一点也不明白。有人可以向我解释这种方法解决的问题吗?

0 个答案:

没有答案