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
It's more elegant to solve a related problem first: Keep every element whose index is divisible by n.
everyNth n [] = []
everyNth n (x:xs) = x : (everyNth n . drop (n-1)) xs
And then to solve the example, use
everyNthFirst n = everyNth n . drop (n-1)
everyNthFirst 3 [5, 3, 0, 1, 8, 0, 3, 4, 0, 93, 211, 0 ...] gives [0, 0, 0, ...]