1
0
mirror of synced 2026-02-12 03:07:25 +00:00
Files
Interlisp.medley/internal/test/LANGUAGE/AUTO/15-6-RASSOC-IF-NOT.TEST

84 lines
2.4 KiB
Plaintext

;; Function To Be Tested: RASSOC-IF-NOT
;;
;; Source: Guy L Steele's CLTL
;; Section: 15.6 Association Lists
;; Page: 281
;;
;; Created By: Kelly Roach
;;
;; Creation Date: June 27,1986
;;
;; Last Update: June 27,1986
;;
;; Filed As: {ERIS}<LISPCORE>CML>TEST>15-6-RASSOC-IF-NOT.TEST
;;
;;
;; Syntax: (RASSOC-IF-NOT PREDICATE ALIST)
;;
;; Function Description:
;; RASSOC is the reverse form of ASSOC; it searches for
;; a pair whose CDR satisfies the test, rather than the CAR.
;; If the A-LIST is considered to be a mapping, then RASSOC
;; treats the A-LIST as representing the inverse mapping.
;; For example:
;;
;; (RASSOC 'A '((A . B) (B . C) (C . A) (Z . A))) => (C . A)
;;
;;
;; The expressions
;;
;; (RASSOC ITEM LIST :TEST FN)
;;
;; and
;;
;; (FIND ITEM LIST :TEST FN :KEY #'CDR)
;;
;; are equivalent in meaning, except when the ITEM is NIL
;; and NIL appears in place of a pair in the a-list. See the discussion
;; of the function function ASSOC.
;;
;; Argument(s): PREDICATE - a function
;; ALIST - an association list
;;
;; Returns: a list
;;
(DO-TEST "RASSOC-IF-NOT TEST 1"
(EQUAL (RASSOC-IF-NOT (QUOTE NUMBERP)
(QUOTE ((1 . 1)
(2 . A)
(3 . "FOO")
(4 1 2)
(T))))
(QUOTE (2 . A)))
(EQUAL (RASSOC-IF-NOT (QUOTE SYMBOLP)
(QUOTE ((2 . A)
(1 . 1)
(3 . "FOO")
(4 1 2)
(T))))
(QUOTE (1 . 1)))
(EQUAL (RASSOC-IF-NOT (QUOTE STRINGP)
(QUOTE ((3 . "FOO")
(2 . A)
(1 . 1)
(4 1 2)
(T))))
(QUOTE (2 . A)))
(EQUAL (RASSOC-IF-NOT (QUOTE LISTP)
(QUOTE ((4 1 2)
(3 . "FOO")
(2 . A)
(1 . 1)
(T))))
(QUOTE (3 . "FOO")))
(EQUAL (RASSOC-IF-NOT (QUOTE NULL)
(QUOTE ((T)
(4 1 2)
(3 . "FOO")
(2 . A)
(1 . 1))))
(QUOTE (4 1 2))))
STOP