|_| Convert our parity encoding back into unary, looping as needed. |show x| , copy x to @number , print number |copy x to @number| x -> @number:9007199254740991 |x -> @number, x| @number, temporary x |x -> @number| |temporary x| x |print number| @print number |move, 2| move, x |move, 1| x |move | hailstone |_| Compute 3x + 1 |odd, 2| odd, x:6 |odd | hailstone, x |_| compute the parity of x |eval, x, 1| eval, 2 |eval, x | eval, 1 |_| resolve our base cases 3x + 1 and x / 2 |eval, 2, 1| odd, 2, x:3 |eval | move |hailstone| show x, eval |#port, on print number , needs, @print number, clears, @print number , takes, @number| || hailstone || x:27