class program { define half-turn() { turnleft(); turnleft(); } define turnright() { iterate(3) { turnleft(); } } define goto-corner() { while (notFacingSouth) { turnleft(); } while (frontIsClear) { move(); } turnright(); while (frontIsClear) { move(); } } define distance() { if (nextToABeeper) { pickbeeper(); goto-corner(); half-turn(); } else { if (frontIsClear) { move(); distance(); move(); } else { half-turn(); } } } define go-west() { while (notFacingWest) { turnleft(); } move(); } define search() { iterate (4) { distance(); turnleft(); } } program() { search(); go-west(); turnoff(); } }