Function std.range.slide
A fixed-sized sliding window iteration
of size windowSize over a source range by a custom stepSize.
						
				auto auto slide(Flag!("withPartial") f = Yes
				  Source source,
				
				  size_t windowSize,
				
				  size_t stepSize = 1
				
				)
				
				if (isForwardRange!Source);
						
					
				The Source range must be at least a ForwardRange
and the windowSize must be greater than zero.
For windowSize = 1 it splits the range into single element groups (aka unflatten)
For windowSize = 2 it is similar to zip(source, source.
Parameters
| Name | Description | 
|---|---|
| f | Whether the last element has fewer elements than windowSizeit should be be ignored (No) or added (Yes) | 
| source | Range from which the slide will be selected | 
| windowSize | Sliding window size | 
| stepSize | Steps between the windows (by default 1) | 
Returns
Range of all sliding windows with propagated bi-directionality, forwarding, random access, and slicing.
Note
To avoid performance overhead, bi-directionality
      is only available when hasSlicing
      and hasLength are true.
See Also
Example
Iterate over ranges with windows
import stdExample
set a custom stepsize (default 1)
import stdExample
Allow the last slide to have fewer elements than windowSize
import stdExample
Count all the possible substrings of length 2
import stdExample
withPartial only has an effect if last element in the range doesn't have the full size
import stdAuthors
Andrei Alexandrescu, David Simcha, Jonathan M Davis, and Jack Stouffer. Credit for some of the ideas in building this module goes to Leonardo Maffi.