I'd kill for some UFCS action. Here's my interpretation (only the
first one works of course):
range = take(stride(cycle([1, 2, 3, 4]), 2), 2); // :(
range = take(stride(2, cycle(2, [1, 2, 3, 4]))); // :)
range = cycle([1, 2, 3, 4]).stride(2).take(2); // :D