# In this example, the order of tuples in relation Orte is reversed by a DAC algorithm. Initially, one task is created for each tuple in this relation. Then, in each step the number of tasks is halved, merging the tuple sets of two adjacent tasks, until just one task is left. let Tasks = Orte feed addcounter[C, 1] nest[C; Tuples] addcounter[D, 2] project[C, D, Tuples] consume while (Tasks count) > 1 do if ((Tasks count) mod 2) = 0 then update Tasks := Tasks feed filter[(.C mod 2) = 1] remove[C] Tasks feed remove[D] renameattr[Tuples2: Tuples] mergejoin[D, C] projectextend[; Tuples: .Tuples2 afeed .Tuples afeed concat aconsume] addcounter[C, 1] addcounter[D, 2] project[C, D, Tuples] consume else update Tasks := Tasks feed head[1] Tasks feed filter[(.D mod 2) = 1] remove[C] Tasks feed remove[D] renameattr[Tuples2: Tuples] mergejoin[D, C] projectextend[; Tuples: .Tuples2 afeed .Tuples afeed concat aconsume] addcounter[C, 2] addcounter[D, 3] project[C, D, Tuples] concat consume endif endwhile query Tasks feed unnest[Tuples] count