core: Add member.
[mes.git] / src / lib.c
index 8b46898edeb5408f977c4790fdcb90749ed81c79..9fb749005026c7ab529cf10f24b433adf8070492 100644 (file)
--- a/src/lib.c
+++ b/src/lib.c
@@ -312,3 +312,21 @@ equal2_p (SCM a, SCM b)
     }
   return eq_p (a, b);
 }
+
+SCM
+member (SCM x, SCM a)
+{
+  switch (TYPE (x))
+    {
+    case TCHAR:
+    case TNUMBER:
+    case TKEYWORD:
+    case TSYMBOL:
+    case TSPECIAL:
+      return memq (x, a);
+    default:
+      while (a != cell_nil && equal2_p (x, CAR (a)) != cell_t)
+        a = CDR (a);
+    }
+  return a != cell_nil ? a : cell_f;
+}