SYNOPSIS
        int     reverse (int arg)
        string  reverse (string arg)
        bytes   reverse (bytes arg)
        mixed * reverse (mixed * arg)
        mixed * reverse (mixed * & arg)

BESCHREIBUNG
        Kehrt die Reihenfolge des Inhaltes eines Arrays, Strings oder
        Bytefolge <arg> um und liefert den neuen Wert als Resultat.
        Ist <arg> eine Zahl, wird die Reihenfolge der Bits in <arg> umgekehrt.

        Wenn in der Referenz-Variante verwendet, wird das Argumentarray selber
        invertiert und auch zurueckgegeben.

BEISPIELE
        reverse (0x306a) - gibt 0x560c0000 zurueck

        reverse ("test") - gibt "tset" zurueck

        mixed * a = ({ 1, 2 });
        reverse(a)  - gibt ({ 2, 1 }) zurueck, a bleibt unveraendert.
        reverse(&a) - gibt ({ 2, 1 }) zurueck, a ist nun ({ 2, 1 })

FEHLER
        Referenz-Teilarrays wie reverse(&(a[1..2])) werden nicht unterstuetzt.

GESCHICHTE
        Eingefuehrt in LDMud 3.3.529.
        LDMud 3.3.532 fuegte die Bitumkehr von Zahlen ein.

SIEHE AUCH
