diff --git a/doc/efun/member b/doc/efun/member
new file mode 100644
index 0000000..9f0e66a
--- /dev/null
+++ b/doc/efun/member
@@ -0,0 +1,24 @@
+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)
\ No newline at end of file
