From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Predicate for true lists Date: Sat, 07 Jul 2018 19:12:47 +0300 Message-ID: <83o9fjhvnk.fsf@gnu.org> References: <87fu3vdjjk.fsf@tcd.ie> <87bmcqhhsf.fsf@tcd.ie> <87in6xgtpb.fsf@tcd.ie> <2af892df-26cb-60b2-4fd8-067fcb3d32e9@cs.ucla.edu> <87r2kh9uwx.fsf@tcd.ie> <83h8lcnbxb.fsf@gnu.org> <6fc589d1-2c21-3e9b-be47-b7700f61642d@cs.ucla.edu> <831scflefs.fsf@gnu.org> <5d0d79d3-6291-fbf0-1028-064f86787483@cs.ucla.edu> <837em7jrag.fsf@gnu.org> <87k1q7ytmr.fsf@tcd.ie> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1530979879 710 195.159.176.226 (7 Jul 2018 16:11:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 7 Jul 2018 16:11:19 +0000 (UTC) Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org To: "Basil L. Contovounesios" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jul 07 18:11:15 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fbpnl-0008Vk-Qb for ged-emacs-devel@m.gmane.org; Sat, 07 Jul 2018 18:11:13 +0200 Original-Received: from localhost ([::1]:34256 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fbpps-0001kT-V6 for ged-emacs-devel@m.gmane.org; Sat, 07 Jul 2018 12:13:24 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33000) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fbppF-0001kN-SI for emacs-devel@gnu.org; Sat, 07 Jul 2018 12:12:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fbppC-0005Ab-LU for emacs-devel@gnu.org; Sat, 07 Jul 2018 12:12:45 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54715) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fbppC-0005AP-I8; Sat, 07 Jul 2018 12:12:42 -0400 Original-Received: from [176.228.60.248] (port=2914 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fbppC-0007Zw-09; Sat, 07 Jul 2018 12:12:42 -0400 In-reply-to: <87k1q7ytmr.fsf@tcd.ie> (contovob@tcd.ie) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:227069 Archived-At: > From: "Basil L. Contovounesios" > Cc: Paul Eggert , > Date: Sat, 07 Jul 2018 18:04:28 +0300 > > > (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))) > ^^^^^^^^^^^^^^ Yes, I know. > This function returns the number of elements in @var{sequence}. If > -@var{sequence} 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. > +@var{sequence} does not satisfy @code{sequencep} or is a dotted list, It is better to say "If the argument is not a sequence, or is a dotted list, ...". > +a @code{wrong-type-argument} error is signaled; if it is a circular Please try to avoid passive tense, it usually makes the text longer and less clear. I'd suggest The function signals the @code{wrong-type-argument} error if the argument is not a sequence or is a dotted list; it signals the @code{circular-list} error if the argument is a circular list. Thanks.