Doubling a number in binary representation
Least significant bit first; # is end-of-tape marker
r1 : double • 0 ->> 0 • copy0.
r2 : double • 1 ->> 0 • copy1.
r3 : copy0 • 0 ->> 0 • copy0.
r4 : copy0 • 1 ->> 0 • copy1.
r5 : copy0 • # ->> 0 • #.
r6 : copy1 • 0 ->> 1 • copy0.
r7 : copy1 • 1 ->> 1 • copy1.
r8 : copy1 • # ->> 1 • #.
r2 : double • 1 ->> 0 • copy1.
r3 : copy0 • 0 ->> 0 • copy0.
r4 : copy0 • 1 ->> 0 • copy1.
r5 : copy0 • # ->> 0 • #.
r6 : copy1 • 0 ->> 1 • copy0.
r7 : copy1 • 1 ->> 1 • copy1.
r8 : copy1 • # ->> 1 • #.
%trace *
# • double • 1 • 1 • 0 • 1 • #.
# • double • 1 • 1 • 0 • 1 • #.
#•double•1•1•0•1•#
#•0•copy1•1•0•1•#
#•0•1•copy1•0•1•#
#•0•1•1•copy0•1•#
#•0•1•1•0•copy1•#
#•0•1•1•0•1•#