以下到底是怎么回事?
> let test = map show
> :t test
test :: [()] -> [String]
> :t (map show)
(map show) :: Show a => [a] -> [String]
我想知道我以前怎么没注意到这一点?我实际上遇到了“map fromIntegral”而不是 show 的问题——我的代码不能用无点形式编译,但在没有 eta 减少的情况下可以正常工作。
是否有一个简单的解释 eta 减少何时可以改变 Haskell 代码的含义?