From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thien-Thi Nguyen Newsgroups: gmane.emacs.devel Subject: Re: newsticker-start: Recursive laod error Date: 14 Dec 2005 19:35:36 -0500 Message-ID: References: <873bkzhnfe.fsf@pacem.orebokech.com> <17309.50116.806660.681190@andromeda.eppjasopp.de> <17312.28917.411699.419515@andromeda.eppjasopp.de> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1134609471 23031 80.91.229.2 (15 Dec 2005 01:17:51 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 15 Dec 2005 01:17:51 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 15 02:17:50 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1EmhjK-0006Q8-Gg for ged-emacs-devel@m.gmane.org; Thu, 15 Dec 2005 02:16:22 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Emhjw-0002vZ-Go for ged-emacs-devel@m.gmane.org; Wed, 14 Dec 2005 20:17:00 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Emh6d-0006fO-TG for emacs-devel@gnu.org; Wed, 14 Dec 2005 19:36:24 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Emh6c-0006ey-65 for emacs-devel@gnu.org; Wed, 14 Dec 2005 19:36:22 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Emh6c-0006ev-30 for emacs-devel@gnu.org; Wed, 14 Dec 2005 19:36:22 -0500 Original-Received: from [207.245.121.137] (helo=mail.agora-net.com) by monty-python.gnu.org with esmtp (TLS-1.0:RSA_AES_128_CBC_SHA:16) (Exim 4.34) id 1Emh8g-0000cr-ON for emacs-devel@gnu.org; Wed, 14 Dec 2005 19:38:30 -0500 Original-Received: from ttn by mail.agora-net.com with local (Exim 4.50) id 1Emh5s-00039i-P0; Wed, 14 Dec 2005 19:35:36 -0500 Original-To: ulf.jasper@web.de In-Reply-To: <17312.28917.411699.419515@andromeda.eppjasopp.de> Original-Lines: 26 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:47753 Archived-At: Ulf Jasper writes: > the "(< 0 (length LIST)) === LIST" part to newbie me? the "===" means "equivalent in a predicate context" here (sorry for the confusion; this is ttn-post-C2H5OH notation :-). i suppose i should have continued to quote "in a predicate", which was at the beginning of my original message -- that is the key to this thread. at the risk of proving myself an unsuccessful pedant: in a predicate context (where the answer to the question is true or false), we start w/ the axiom that the empty list has value nil. e.g.: (make-list 0 FOO) => nil. then we follow this chain of reasoning: non-empty list => non-nil => non-false => "close enough to true to be interpreted as true (i.e., far enough from false to be not interpreted as false)". the predicate context clamps values. this clamping is what (seemingly ironically, one reflects) frees us from strict adherence to "abstraction purity"; we can move from good design to better design. [insert spiel about recognizing premature optimization and shrugging one's shoulders, here...] to sum up, to answer the question in this particular predicate context, one need not compute a truth value using a function; it is sufficient to look at the underlying data structure, i.e., the list as a value held in a variable. thi