]> git.eshelyaron.com Git - emacs.git/commitdiff
(Frassoc): New function.
authorRichard M. Stallman <rms@gnu.org>
Sun, 29 Jan 1995 22:04:10 +0000 (22:04 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 29 Jan 1995 22:04:10 +0000 (22:04 +0000)
(syms_of_fns): defsubr it.

src/fns.c

index c17c62020a6922b6944de0ebd10471a7b426441e..56b3f693d6e715d35ec038cd76c660904b245eb3 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -569,7 +569,7 @@ assq_no_quit (key, list)
 
 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 @@ The value is actually the element of LIST whose cdr is ELT.")
     }
   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;
+}
 \f
 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 @@ Used by `featurep' and `require', and altered by `provide'.");
   defsubr (&Sassq);
   defsubr (&Sassoc);
   defsubr (&Srassq);
+  defsubr (&Srassoc);
   defsubr (&Sdelq);
   defsubr (&Sdelete);
   defsubr (&Snreverse);