scanlr-- source --
scanlr = PDC(d_lr, c_lr, id, (id, '+') @ #(nil, last(0)), atom, id)
trace(scanlr, [0, 1, 2, 3, 4, 5, 6, 7])
-- end source --
-- trace: scanlr([0,1,2,3,4,5,6,7]) --
scanlr([0,1,2,3,4,5,6,7])
divide d_lr -> ([0,1,2,3], [4,5,6,7])
scanlr([0,1,2,3])
divide d_lr -> ([0,1], [2,3])
scanlr([0,1])
divide d_lr -> ([0], [1])
scanlr([0])
⇣ atom; basef -> [0]
scanlr([1])
⇣ atom; basef -> [1]
post #(nil,last0) -> ([0], [(1, 0)])
post (id_, plus) -> ([0], [1])
combine c_lr -> [0,1]
scanlr([2,3])
divide d_lr -> ([2], [3])
scanlr([2])
⇣ atom; basef -> [2]
scanlr([3])
⇣ atom; basef -> [3]
post #(nil,last0) -> ([2], [(3, 2)])
post (id_, plus) -> ([2], [5])
combine c_lr -> [2,5]
post #(nil,last0) -> ([0,1], [(2, 1),(5, 1)])
post (id_, plus) -> ([0,1], [3,6])
combine c_lr -> [0,1,3,6]
scanlr([4,5,6,7])
divide d_lr -> ([4,5], [6,7])
scanlr([4,5])
divide d_lr -> ([4], [5])
scanlr([4])
⇣ atom; basef -> [4]
scanlr([5])
⇣ atom; basef -> [5]
post #(nil,last0) -> ([4], [(5, 4)])
post (id_, plus) -> ([4], [9])
combine c_lr -> [4,9]
scanlr([6,7])
divide d_lr -> ([6], [7])
scanlr([6])
⇣ atom; basef -> [6]
scanlr([7])
⇣ atom; basef -> [7]
post #(nil,last0) -> ([6], [(7, 6)])
post (id_, plus) -> ([6], [13])
combine c_lr -> [6,13]
post #(nil,last0) -> ([4,9], [(6, 9),(13, 9)])
post (id_, plus) -> ([4,9], [15,22])
combine c_lr -> [4,9,15,22]
post #(nil,last0) -> ([0,1,3,6], [(4, 6),(9, 6),(15, 6),(22, 6)])
post (id_, plus) -> ([0,1,3,6], [10,15,21,28])
combine c_lr -> [0,1,3,6,10,15,21,28]
-- result: [0,1,3,6,10,15,21,28] --
|