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