SYNOPSIS
        int member(mixed *array, mixed elem [, int start]);
        int member(string s, int elem [, int start]);
        int member(mapping map, mixed key);

BESCHREIBUNG
        Fuer Arrays und String liefert member() den Index des ersten
        Auftretens von <elem> in <arg>. Ist <elem> nicht in <arg> enthalten,
        wird -1 zurueck gegeben.

        Ist <start> als Zahl >= 0 gegeben, beginnt die Suche ab der
        angegebenen Position. Eine Startposition groesser als die
        Laenge des Strings/Arrays liefert stets das Resultat -1.

        Fuer Mapping prueft member(), ob <key> in <map> enthalten ist und
        liefert 1 zurueck falls ja, 0 sonst.

BEISPIELE
        member( ({ "abc", "defg" }), "defg" ) = 1
        member( ({ "abc", "defg" }), "x" ) = -1
        member( "abcdefg", 100 ) = member( "abcdefg", 'd' ) = 3

SIEHE AUCH
        rmember(E), mappings(LPC)