[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Predicate for true lists
From: |
Drew Adams |
Subject: |
RE: Predicate for true lists |
Date: |
Fri, 6 Jul 2018 10:16:11 -0700 (PDT) |
> > +** New function 'proper-list-length'.
> > +Given a proper list as argument, this function returns its length;
> > +otherwise, it returns nil. This function can thus be used as a
> > +predicate for proper lists.
>
> Do we really want this usage of the function as a predicate? I find
> this slightly unnatural, and also not future-proof enough, because you
> rely on the checks 'length' does internally. If the internals of
> 'length' change one day, this predicate usage will collapse like a
> house of cards. Would it make more sense to have a separate
> predicate?
IIRC, the main motivation for adding this function was
to provide a predicate for testing properness.
I see no reason why we should have two functions that
do essentially the same thing: the proposed function
to obtain the length plus a function such as this:
(defun proper-list-p (object)
"Return non-nil if OBJECT is a proper list."
(and (proper-list-length object) t))
We should just have one function, and make clear its
use as a predicate. If we really want to make that
clear and discoverable then provide `proper-list-p'
as an alias for `proper-list-length'. That makes
both uses clear without having two functions.
[The name `proper-list-length' can make it sound like
it returns the proper length of a list, not the length
of a proper list. But I can't think of a better name.
(And `list-proper-length' is what we would really call
a function that did provide the "proper length" of a
list.)]
Re: Predicate for true lists, Paul Eggert, 2018/07/06
- Re: Predicate for true lists, Eli Zaretskii, 2018/07/07
- Re: Predicate for true lists, martin rudalics, 2018/07/07
- Re: Predicate for true lists, Paul Eggert, 2018/07/07
- Re: Predicate for true lists, Eli Zaretskii, 2018/07/07
- Re: Predicate for true lists, Basil L. Contovounesios, 2018/07/07