beginning_of_program define_new_instruction turnright as {iterate 3 times turnleft;} define_new_instruction baila as if front_is_clear then { if right_is_blocked then {move; baila;} else if left_is_blocked then {iterate 2 times turnleft; if front_is_clear then baila; baila;} else {turnleft; baila;} } beginning_of_execution baila; turnoff; end_of_execution end_of_program