package bin; import lib.CLIAppBase; using tink.CoreApi; class Turtle extends CLIAppBase { public function new() { registerSyncSubcommand("forward", (args)->{ return perform(kernel.turtle.Turtle.instance.forward()); }); registerSyncSubcommand("back", (args)->{ return perform(kernel.turtle.Turtle.instance.back()); }); registerSyncSubcommand("left", (args)->{ return perform(kernel.turtle.Turtle.instance.turnLeft()); }); registerSyncSubcommand("right", (args)->{ return perform(kernel.turtle.Turtle.instance.turnRight()); }); registerSyncSubcommand("up", (args)->{ return perform(kernel.turtle.Turtle.instance.up()); }); registerSyncSubcommand("down", (args)->{ return perform(kernel.turtle.Turtle.instance.down()); }); } private function perform(outcome: Outcome): Bool { switch outcome { case Success(_): return true; case Failure(error): handle.write(error); return false; } } }