# HG changeset patch # User Richard M. Stallman # Date 791417050 0 # Node ID 2a8f29cd9e9f9b448a0675c098602a6a453dc428 # Parent 99b9f20b69219b55bf52342462f0a64d18b596b1 (Frassoc): New function. (syms_of_fns): defsubr it. diff -r 99b9f20b6921 -r 2a8f29cd9e9f src/fns.c --- 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);