Glo*_*ash 1 haskell function list
我正在编写一个函数来为列表中的下两个元素应用一个函数.
例如:applyToTwo (+) [1,2,3,4]return [3,5,7].
applyToTwo (-) [7,1,1,1,1]回来[6,0,0,0].
我想概括类型,以便它可以应用于我想要的任何类型.我的尝试是:
applyToTwo :: (a -> a -> b) -> [a] -> [a]
applyToTwo f [] = []
applyToTwo f [x] = []
applyToTwo f (x:x1:rest) = f x x1 ++ applyToTwo f (x1:rest)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,有没有办法概括要应用的元素数量,以便它可以适用于3,4,5?
看起来你只是用它的尾部压缩列表,所以你可以使用zipWith:
applyToTwo f xs = zipWith f xs (tail xs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |