sequence function: sfor
description:
sfor(seq1, operators)
sfor(seq1, seq2, operators)
sfor(seq1, seq2, seq3, operators)
the sequence for loop function
nested loops over the given sequences, applying operators specified in 'operators'
examples:
-- just some abstract tests:
merge-elts (*,*) #=> |_self1> _ |: > _ |_self2>
merge-dots (*,*) #=> |_self1> _ | .. > _ |_self2>
sfor(|0> . |1>, |2> . |3>, |op: merge-elts>)
|0: 2> . |0: 3> . |1: 2> . |1: 3>
sfor(|0> . |1>, |2> . |3>, |op: merge-elts> + |op: merge-dots>)
|0: 2> + |0 .. 2> . |0: 3> + |0 .. 3> . |1: 2> + |1 .. 2> . |1: 3> + |1 .. 3>
bracket (*) #=> |[> _ smerge[", "] |_self1> _ |]>
print (*) #=> print bracket |_self1>
print (*,*) #=> print bracket( bracket |_self1> . bracket |_self2> )
print (*,*,*) #=> print bracket( bracket |_self1> . bracket |_self2> . bracket |_self3> )
sfor(|a> . |b> . |c>, |op: print>)
[a]
[b]
[c]
sfor(split |a b c>, split |a b c>, |op: print>)
[[a, b, c], [a, b, c]]
sfor(ssplit[" "] |a b c>, ssplit[" "] |a b c>, |op: print>)
[[a], [a]]
[[a], [b]]
[[a], [c]]
[[b], [a]]
[[b], [b]]
[[b], [c]]
[[c], [a]]
[[c], [b]]
[[c], [c]]
sfor(ssplit[" "] |a b>, ssplit[" "] |a b>, ssplit[" "] |a b>, |op: print>)
[[a], [a], [a]]
[[a], [a], [b]]
[[a], [b], [a]]
[[a], [b], [b]]
[[b], [a], [a]]
[[b], [a], [b]]
[[b], [b], [a]]
[[b], [b], [b]]
see also:
for, smap
Home