;; skip by m with a lst rotation of r
;; for example: (skip 2 -1 (scale 3 8))
(define skip
(lambda (m r lst)
(map cadr
(filter (lambda (y) (= 0 (modulo (car y) m)))
(map (lambda (x y) (list x y))
(range 0 (length lst)) (rotate lst r))))))