因此,将列表元素复制给定次数的函数如下所示

rep :: Int -> [a] -> [a]
rep = concatMap . replicate

根据定义(f . g) x = f(g(x))
(concatMap (replicate 4 "abc"))(concatMap . replicate) 4 "abc"不同。实际上,它根本不起作用。并且concatMap的第一个参数必须是function。我对此感到困惑。那点免费版本怎么工作?谁能解释一下。

最佳答案

您说的(f . g) x = f (g x)是正确的,但这并不意味着(concatMap . replicate) 4 "abc" = concatMap (replicate 4 "abc")。而是说(concatMap . replicate) 4 "abc" = concatMap (replicate 4) "abc",这是正确的。

关于haskell - 与无点样式代码混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22474231/

10-13 06:05