# A question on the function Drop

I use the function Drop quite often. When looking at this question, my attention was caught by a use of Drop in a way I did not see before. So I read the documentation and found the following description:

Drop[list,{m,n,s}] gives list with elements m through n in steps of s dropped.

As I read it, this formulation suggests that the list is partioned in sublists of length s and that in each of these sublists the elements m through n are dropped.

Drop[Range[10], {2,3,5}]
=> {1,3,4,5,6,7,8,9,10}

I expected that the elements 2, 3, 7 and 8 would be dropped. It is only element 2 that is dropped. I get the same result when I replace the number 3 (n) with any number between 2 and 10. So with these values, m through n seems to result in only m for the original list.

In the next command I indeed see some periodictity with respect to s:

Drop[Range[10], {3,-1, 5}]
=> {1, 2, 4, 5, 6, 7, 9, 10}

But I fail to see why elements 3 to -1 in steps of 5 results in 3 and 8. I get the same result when I replace -1 with -2 or -3.

Finally:

Drop[Range[10], {5,-1, 5}]
=> {1,2,3,4,6,7,8,9,10}

Here elements 5 and 10 are dropped. But:

Drop[Range[10], {5,-2, 5}]
=> {1,2,3,4,6,7,8,9,10}

Now only element 5 is dropped.

Can someone give me a better understanding how I can predict the result of Drop, when used with a list {m, n, s}?

• Another way to write it: For m < n (and s > 0 by necessity), Drop[list, {m, n, s}] drops m + s*i for all s such that m + s*i <= n. If n > m we must have that s < 0 and it will drop m + s*i for all s such that m + s*i >= n. – C. E. Mar 14 '17 at 11:59