changeset 10588:2a8f29cd9e9f

(Frassoc): New function. (syms_of_fns): defsubr it.
author Richard M. Stallman <rms@gnu.org>
date Sun, 29 Jan 1995 22:04:10 +0000
parents 99b9f20b6921
children 4d7bc901319a
files src/fns.c
diffstat 1 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/fns.c	Sun Jan 29 10:15:51 1995 +0000
+++ b/src/fns.c	Sun Jan 29 22:04:10 1995 +0000
@@ -569,7 +569,7 @@
 
 DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0,
   "Return non-nil if KEY is `equal' to the car of an element of LIST.\n\
-The value is actually the element of LIST whose car is KEY.")
+The value is actually the element of LIST whose car equals KEY.")
   (key, list)
      register Lisp_Object key;
      Lisp_Object list;
@@ -606,6 +606,26 @@
     }
   return Qnil;
 }
+
+DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0,
+  "Return non-nil if KEY is `equal' to the cdr of an element of LIST.\n\
+The value is actually the element of LIST whose cdr equals KEY.")
+  (key, list)
+     register Lisp_Object key;
+     Lisp_Object list;
+{
+  register Lisp_Object tail;
+  for (tail = list; !NILP (tail); tail = Fcdr (tail))
+    {
+      register Lisp_Object elt, tem;
+      elt = Fcar (tail);
+      if (!CONSP (elt)) continue;
+      tem = Fequal (Fcdr (elt), key);
+      if (!NILP (tem)) return elt;
+      QUIT;
+    }
+  return Qnil;
+}
 
 DEFUN ("delq", Fdelq, Sdelq, 2, 2, 0,
   "Delete by side effect any occurrences of ELT as a member of LIST.\n\
@@ -1464,6 +1484,7 @@
   defsubr (&Sassq);
   defsubr (&Sassoc);
   defsubr (&Srassq);
+  defsubr (&Srassoc);
   defsubr (&Sdelq);
   defsubr (&Sdelete);
   defsubr (&Snreverse);