with ada.text_io; use ada.text_io; with ada.integer_text_io; use ada.integer_text_io; with Ada.Unchecked_Conversion; procedure decode0 is subtype String4 is String(1 .. 4); function rev(s: String) return String is ans: String(s'range); begin for i in s'range loop ans(i) := s(s'first + s'last - i); -- last shall be first end loop; return ans; end rev; function int2string4 is new ada.Unchecked_Conversion (source => Integer, target => String4); i: Integer; s: String4; begin while not end_of_file loop get(i); s := int2string4(i); put(rev(s)); end loop; end decode0;