From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Sweeter Emacs Lisp Date: Mon, 22 Jul 2013 17:04:04 -0400 Message-ID: References: <8738rh6ftk.fsf@gnu.org> <87a9lezh9w.fsf@zigzag.favinet> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1374527050 15887 80.91.229.3 (22 Jul 2013 21:04:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 22 Jul 2013 21:04:10 +0000 (UTC) Cc: emacs-devel To: Thien-Thi Nguyen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jul 22 23:04:11 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1V1NH8-0006RW-W4 for ged-emacs-devel@m.gmane.org; Mon, 22 Jul 2013 23:04:11 +0200 Original-Received: from localhost ([::1]:52337 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1NH8-0007WD-Fu for ged-emacs-devel@m.gmane.org; Mon, 22 Jul 2013 17:04:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1NH5-0007T8-4t for emacs-devel@gnu.org; Mon, 22 Jul 2013 17:04:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1NH3-0007y2-Km for emacs-devel@gnu.org; Mon, 22 Jul 2013 17:04:07 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:38350) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1NH3-0007xt-GH; Mon, 22 Jul 2013 17:04:05 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAFABK/CFG4rw7r/2dsb2JhbABEhke4Rxdzgh4BAQQBIzMjBQsLGgIYDgICFBgNJC6HcAauX5JOgSOOVIETA6R6gV6DEw X-IPAS-Result: AgAFABK/CFG4rw7r/2dsb2JhbABEhke4Rxdzgh4BAQQBIzMjBQsLGgIYDgICFBgNJC6HcAauX5JOgSOOVIETA6R6gV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="19558086" Original-Received: from 184-175-14-235.dsl.teksavvy.com (HELO pastel.home) ([184.175.14.235]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 22 Jul 2013 17:03:58 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 2957863170; Mon, 22 Jul 2013 17:04:04 -0400 (EDT) In-Reply-To: <87a9lezh9w.fsf@zigzag.favinet> (Thien-Thi Nguyen's message of "Mon, 22 Jul 2013 18:33:15 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:162078 Archived-At: > So maybe a when-let makes sense, tho I'd prefer a when-let* > (which has also been seen under the name let-and, IIRC). > Are you willing to consider Scheme's =E2=80=98and-let*=E2=80=99 (SRFI 2). Sounds like the same thing, yes. > IIRC i also proposed, maybe a year back, a Schemish =E2=80=98cond=E2=80=99 > (with =E2=80=98=3D>=E2=80=99) but it was rejected. RMS suggested instead: > (cond VAR (CONDITION [BODY...]) > ...) As I pointed out back then, a more general solution is a way to let-bind new variables in between cond clauses, as in (cond ( ) (let x ) ( )) which would be used in cases where we currently use =20=20=20=20 (let (x) (cond ( ) ((progn (setq x ) ) )) -- Stefan