How to get every Nth element of an infinite list in Haskell?
My version using drop: every n xs = case drop (n-1) xs of y : ys -> y : every n ys [] -> [] Edit: this also works for finite lists. For infinite lists only, Charles Stewart’s solution is slightly shorter.