# for_range>: Repeat tasks for a range **for_range>** operator runs subtasks multiple times using sets of variables. This operator exports `${range.from}`, `${range.to}`, and `${range.index}` variables for the subtasks. Index begins from 0. +repeat: for_range>: from: 10 to: 50 step: 10 _do: echo>: processing from ${range.from} to ${range.to}. # this will generate 4 tasks: # +range-from=10&to=20: # echo>: processing from 10 to 20. # +range-from=20&to=30: # echo>: processing from 20 to 30. # +range-from=30&to=40: # echo>: processing from 30 to 40. # +range-from=40&to=50: # echo>: processing from 40 to 50. * **for_range>**: object of from, to, and slices or step This nested object is used to declare a range from **from** to **to**. Then you divide the range into fixed number of slices using **slices** option, or divide the range by width by **step** option. Setting both slices and step is error. Examples: ``` for_range>: from: 0 to: 10 step: 3 # this repeats tasks for 4 times (number of slices is computed automatically): # * {range.from: 0, range.to: 3, range.index: 0} # * {range.from: 3, range.to: 6, range.index: 1} # * {range.from: 6, range.to: 9, range.index: 2} # * {range.from: 9, range.to: 10, range.index: 3} _do: echo>: from ${range.from} to ${range.to} ``` ``` for_range>: from: 0 to: 10 slices: 3 # this repeats tasks for 3 times (size of a slice is computed automatically): # * {range.from: 0, range.to: 4, range.index: 0} # * {range.from: 4, range.to: 8, range.index: 1} # * {range.from: 8, range.to: 10, range.index: 2} _do: echo>: from ${range.from} to ${range.to} ``` * **\_parallel**: BOOLEAN | OBJECT Runs the repeating tasks in parallel. If ``_parallel: {limit: N}`` (N is an integer: 1, 2, 3, …) parameter is set, the number of tasks running in parallel is limited to N. Note that the tasks in the loop will be running in serial. Examples: ``` _parallel: true ``` Examples: ``` _parallel: limit: 2 ``` * **\_do**: TASKS Tasks to run.