From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: empty-line-p Date: Sun, 01 Apr 2007 16:54:49 -0400 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1175463534 25264 80.91.229.12 (1 Apr 2007 21:38:54 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 1 Apr 2007 21:38:54 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Apr 01 23:38:48 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HY7l8-0006eU-G0 for geh-help-gnu-emacs@m.gmane.org; Sun, 01 Apr 2007 23:38:46 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HY7o5-0002b1-Mq for geh-help-gnu-emacs@m.gmane.org; Sun, 01 Apr 2007 17:41:49 -0400 Original-Path: shelby.stanford.edu!newshub.stanford.edu!postnews.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.umontreal.ca!news.umontreal.ca.POSTED!not-for-mail Original-NNTP-Posting-Date: Sun, 01 Apr 2007 15:54:49 -0500 Original-Newsgroups: gnu.emacs.help User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.96 (gnu/linux) Cancel-Lock: sha1:46ImbDd1lP8lft1YB88fEPB4Ins= Original-Lines: 30 Original-NNTP-Posting-Host: 132.204.27.213 Original-X-Trace: sv3-ikjiJ4seU/SUp6HIyMnX34bB51m8rPxc0OFU/f2vbN6MlvlHQr6p634S1kIIhJJ5RtoRoeDM7U0O45R!sTumNRAXL00JMPFBC1jVneukaH2upQJ4BLLFBDc+hG0suJ0Nicljl07PGIevQH3yVx0vrjDxik9r!OuRFpV9EAWZx8kjPHw== Original-X-Complaints-To: abuse@umontreal.ca X-DMCA-Complaints-To: abuse@umontreal.ca X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.34 Original-Xref: shelby.stanford.edu gnu.emacs.help:146744 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:42348 Archived-At: >> > (if (looking-at "^[ \t\f\r]*$") >> > t >> > nil))) >> >> (if t nil) >> >> is an eta-regexp, which can be advantageously reduced to just . >> >> >> Stefan >> >> >> PS: The classical eta-regexp is (lambda (x) ( x)), which is equivalent to >> just . Another variant is (cons (car ) (cdr )), which >> eta-reduces to just . > That last one is different, because the new cons is not eq to the > original . Indeed, the eta rules are generally not supported 100% by most languages: there are always some "minor" semantic differences. Aside from the problem you mentioned for the `cons' case, the `if' case changes the result when the tested value can be non-t and non-nil, and the `lambda' case can change the behavior when the function is called with more than 1 argument. So most compilers don't apply such "optimizations", which makes it that much more valuable to apply them by hand. Stefan