More specifically, how do I generate a new list of every Nth element from an existing infinite list?
E.g. if the list is [5, 3, 0, 1, 8, 0, 3, 4, 0, 93, 211, 0
[5, 3, 0, 1, 8, 0, 3, 4, 0, 93, 211, 0
Another way of doing it:
takeEveryM m lst = [n | (i,n) <- zip [1..] lst, i `mod` m == 0]
Yet Another:
import Data.List takeEveryMth m = (unfoldr g) . dr where dr = drop (m-1) g (x:xs) = Just (x, dr xs) g [] = Nothing