因此,将列表元素复制给定次数的函数如下所示
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/