如果
*Main> :t concatMap
concatMap :: (a -> [b]) -> [a] -> [b]
和
*Main> :t replicate
replicate :: Int -> a -> [a]
那么这是如何工作的
*Main> :t concatMap . replicate
concatMap . replicate :: Int -> [b] -> [b]
给定:
*Main> :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
?
我的意思是,我对函数组合的理解是,它replicate
应该返回任何concatMap
期望的参数才能(.)
工作。但事实并非如此。那么问题是什么?