applyEvery :: Int -> (a -> a) -> [a] -> [a]
applyEvery n f = zipWith ($) (cycle (replicate (n-1) id ++ [f]))
cycle [id,id,...,id,f] ad nauseam, zipWith ($) .
, ! .
ASCII ( ASCII!):
functions : [ id, id, f , id, id, f , id, id, f, ...
input list: [ 1, 2, 3, 4, 5, 6, 7 ]
-----------------------------------------------------
result : [ 1, 2, f 3, 4, 5, f 6, 7 ]
, , , f ( ), , , . . , , a, "" . applyEvery :: Int -> (a -> a) -> [a] -> [a]. , doubleEveryThird = applyEvery 3 (*2) - , , . :-)
, , n-1 id s, f : replicate (n-1) id ++ [f]. replicate m x , m x, . replicate 5 'a' = "aaaaa", . f, , :, - Haskell .
cycle ( repeat, ). cycle [a] -> [a], " ". cycle [1,2,3] [1,2,3,1,2,3,1,2,3,...]
[: -y, , - repeat : , ]
zipWith ($). , zip, , , . :
xs : [ a , b , c , d, e]
ys: [ x, y , z ]
------------------------------
zip xs ys: [(a,x),(b,y),(c,z)]
, , ? , , ( ) . zipWith. (, !):
xs : [ a , b , c , d, e]
ys: [ x, y, z ]
----------------------------------------
zipWith f xs ys: [ f a x, f b y, f c z ]
, zipWith ? , , (\f x -> f x) . lambdas , apply f x = f x . Prelude, $! infix , ($) ( (\f x -> f $ x))
, :
applyEvery :: Int -> (a -> a) -> [a] -> [a]
applyEvery n f xs = zipWith ($) (cycle (replicate (n-1) id ++ [f])) xs
xs , , .