We annihilate the need for the ol' nested for
loop using Applicatives.
For example we have this kind of nested loop code:
for(x in xs){ for(x in ys){ for(z in zs){ } }}
We can refactor it by using List comprehension:
const {List} = Immutable; const res1 = List.of(x => x).ap(List([1,2,3]));console.log(res1) // List [ 1,2,3 ]
const res1 = List.of(x => y=> `${x} - ${y}`) .ap(List(['teeshirt', 'sweater'])) .ap(List(['large', 'medium', 'small']));console.log(res1) //List [ "teeshirt - large", "teeshirt - medium", "teeshirt - small", "sweater - large", "sweater - medium", "sweater - small" ]