[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: assoc question



> Franz Common Lisp and Xerox Common Lisp
> follow the book and permit :key for just assoc (and rassoc), while KCL and
> TI Explorer don't allow :key at all.

On your Explorer, you are probably either using Zetalisp or you are
running with very old software (Release 2).  The Common-Lisp ASSOC
in Release 3.0 of the Explorer follows CLtL and allows for a :KEY arg.

>  In any event, there should certainly
> not be an inconsistency.

I agree, but I think all of the ASSOC functions should accept a :KEY
arg.  Alists are commonly used in Lisp.  Of the following, the ASSOC-IF
version is much easier to read.

;;ALIST is an alist where the CAR's are objects (eg persons)
(assoc-if #'over-the-hill-p alist :key #'age)
(find-if #'over-the-hill-p alist :key #'(lambda (x) (age (car x))))

Since alists are in common use, and it would make the ASSOC functions
consistent with FIND et al, the ASSOC functions should also accept :KEY
args.