### context function 3: op-for

```
op-for:
description:
op-for(fn, sp)
op-for(fn, sp1, sp2)
op-for(fn, sp1, sp2, sp3)
apply fn to each of the kets in the given superpositions, using a Cartesian product
NB: if given sequences, they are first cast to superpositions
If you want to use sequences, use op-sfor() instead

examples:
-- for loop over single parameter function:
fn (*) #=> |fn:> __ |__self>
op-for( |op: fn>, split |abcde>)
|fn: a> + |fn: b> + |fn: c> + |fn: d> + |fn: e>

-- for loop over two parameter function:
fn2 (*,*) #=> |fn2(> _ |__self1> _ |, > _ |__self2> _ |)>
op-for( |op: fn2>, split |abc>, split |xyz>)
|fn2(a, x)> + |fn2(a, y)> + |fn2(a, z)> + |fn2(b, x)> + |fn2(b, y)> + |fn2(b, z)> + |fn2(c, x)> + |fn2(c, y)> + |fn2(c, z)>

-- for loop over three parameter function:
fn3 (*,*,*) #=> |fn2(> _ |__self1> _ |, > _ |__self2> _ |, > _ |__self3> _ |)>
op-for( |op: fn3>, split |ab>, split |uv>, split |xy>)
|fn2(a, u, x)> + |fn2(a, u, y)> + |fn2(a, v, x)> + |fn2(a, v, y)> + |fn2(b, u, x)> + |fn2(b, u, y)> + |fn2(b, v, x)> + |fn2(b, v, y)>