%%% Reversing text in 36 bytes (can you do better?)

Jan \v Sustek presented a pearl titled ``Reversing text in 55 bytes'' the
previous year.  It comprised the following macro for sending puzzle
messages via SMS:


\beginverbatim
\def\##1{\ifx.#1\def\#{~.}\else\edef~{#1~}\fi\#}\def~{}\#dlrow\ olleH.
\endverbatim

Since length counts in text messages we propose the following version,
which is only 36 bytes (if we count the total length of the macro
definition and a call on ``Hello world.'' we get 70 bytes in \v Sustek's
version and 51 in ours):

\beginverbatim
\def~#1#2~{\ifx~#2~#1\else~#2~#1\fi}~.dlrow\ olleH~
\endverbatim

Let's trace the macro expansion:

\beginverbatim
~.dlrow\ olleH~
~dlrow\ olleH~.
~lrow\ olleH~d.
~row\ olleH~ld.
~ow\ olleH~rld.
~w\ olleH~orld.
~\ olleH~world.
~olleH~\ world.
~lleH~o\ world.
~leH~lo\ world.
~eH~llo\ world.
~H~ello\ world.
Hello\ world.
\endverbatim

The beauty of this macro lies in symmetry: in the definition the
tokens between \verb|\ifx| and \verb|\else| are exactly the same as
tokens between \verb|\else| and \verb|\fi|.

Can you do any better?
