[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Predicate for true lists
From: |
Basil L. Contovounesios |
Subject: |
Re: Predicate for true lists |
Date: |
Sat, 07 Jul 2018 18:04:28 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Eli Zaretskii <address@hidden> writes:
>> Cc: address@hidden, address@hidden
>> From: Paul Eggert <address@hidden>
>> Date: Sat, 7 Jul 2018 01:41:38 -0700
>>
>> Eli Zaretskii wrote:
>> > the documentation still doesn't say that 'length' signals
>> > an error for anything that is not a sequence, which is what
>> > proper-list-p is relying on.
>>
>> The proposed implementation of proper-list-p does not rely on such a signal,
>
> That's not my reading of the implementation:
>
> (and (listp object) (ignore-errors (length object)))
> ^^^^^^^^^^^^^
The call to 'length' is wrapped in 'ignore-errors' in order to catch the
errors signalled in 'Flength' by 'FOR_EACH_TAIL' (in case of
circularity) and 'CHECK_LIST_END' (in case of dottedness). 'length'
shouldn't signal a 'wrong-type-argument' for a non-sequence argument
because it is only called on objects which satisfy 'listp':
(and (listp object) (ignore-errors (length object)))
^^^^^^^^^^^^^^
Having said that, would something like the following documentation
change be welcome, for completeness?
>From 430d858d3617a11a5130a3344a131b5ab976e818 Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <address@hidden>
Date: Sat, 7 Jul 2018 17:52:26 +0300
Subject: [PATCH] Fix (length NON-SEQUENCE) documentation
For discussion, see thread starting at
https://lists.gnu.org/archive/html/emacs-devel/2018-07/msg00171.html.
* doc/lispref/sequences.texi (Sequence Functions): Mention that
'length' signals a 'wrong-type-argument' also when given a
non-sequencep argument.
---
doc/lispref/sequences.texi | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index 59faf2b4f1..e16674db04 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -71,13 +71,14 @@ Sequence Functions
@cindex list length
@cindex vector length
@cindex sequence length
address@hidden bool-vector length
@cindex char-table length
@anchor{Definition of length}
This function returns the number of elements in @var{sequence}. If
address@hidden is a dotted list, a @code{wrong-type-argument} error is
-signaled; if it is a circular list, a @code{circular-list} error is
-signaled. For a char-table, the value returned is always one more
-than the maximum Emacs character code.
address@hidden does not satisfy @code{sequencep} or is a dotted list,
+a @code{wrong-type-argument} error is signaled; if it is a circular
+list, a @code{circular-list} error is signaled. For a char-table, the value
+returned is always one more than the maximum Emacs character code.
@xref{Definition of safe-length}, for the related function @code{safe-length}.
--
2.18.0
--
Basil
- RE: Predicate for true lists, (continued)
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 <=
- Re: Predicate for true lists, Eli Zaretskii, 2018/07/07
- Re: Predicate for true lists, Basil L. Contovounesios, 2018/07/07
- Re: Predicate for true lists, Eli Zaretskii, 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, Drew Adams, 2018/07/07
- Re: Predicate for true lists, Paul Eggert, 2018/07/08
- RE: Predicate for true lists, Drew Adams, 2018/07/08
- Re: Predicate for true lists, Paul Eggert, 2018/07/08
- RE: Predicate for true lists, Drew Adams, 2018/07/08