var memory = ARGV.map{.to_i}; var ip = 0; while (ip.ge(0) && ip.lt(memory.len)) { var (a, b, c) = memory[ip, ip+1, ip+2]; ip += 3; if (a < 0) { memory[b] = STDIN.getc.ord; } elsif (b < 0) { print memory[a].chr; } elsif ((memory[b] -= memory[a]) <= 0) { ip = c } }