From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lars Magne Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: if-let and when-let: parallel or sequential Date: Tue, 12 Aug 2014 04:43:34 +0200 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1407811461 16460 80.91.229.3 (12 Aug 2014 02:44:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 12 Aug 2014 02:44:21 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Aug 12 04:44:14 2014 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 1XH24L-0006CA-3t for ged-emacs-devel@m.gmane.org; Tue, 12 Aug 2014 04:44:13 +0200 Original-Received: from localhost ([::1]:38839 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XH24K-0006kd-IH for ged-emacs-devel@m.gmane.org; Mon, 11 Aug 2014 22:44:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42639) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XH24D-0006kP-5E for emacs-devel@gnu.org; Mon, 11 Aug 2014 22:44:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XH247-0004Gg-QD for emacs-devel@gnu.org; Mon, 11 Aug 2014 22:44:05 -0400 Original-Received: from hermes.netfonds.no ([80.91.224.195]:38161) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XH247-0004Ee-KF for emacs-devel@gnu.org; Mon, 11 Aug 2014 22:43:59 -0400 Original-Received: from cm-84.215.51.58.getinternet.no ([84.215.51.58] helo=stories.gnus.org) by hermes.netfonds.no with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1XH23i-0006v2-P8; Tue, 12 Aug 2014 04:43:34 +0200 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEWRfmoIAwQYDg13WEUt Ih2GcF3Ap4JUPDQ8QIKYAAACaElEQVQ4jV3TwWrjMBAG4IEg92xT2OtazdJrQFF1rleLrgJ16mug 1HstlYJef/+R3AY2DcX2lxmN5Bny3utfXH3INtKL1vM4T8/jONKitX5IxftsIn3iZhzvG+BSP66h VkBaJGK8n79AFwEbc27w4wY+eCzCoTZ4vMHRY3VjimtwHAWOKGs5hrVYw2eBefQNvABy1bja87mV u3yD177WmKwrgEk/32DBNmJi5xZE/AfBGuviCpiWVlURCMXX7K5nOZQOk0QES3ehXtdQiFRd7v28 pzrhvtRc/JWIkvN+nlrEb9zSek2+AfMq+9CAD4FDdb4IKOayw0lA1dpTAdYdogBVSIPI/NyhPScH 2SF2CO25SsZVvFxJhYgJ0IpSr8zJmA6xw58Or6ycHS6kiOIsUD46bEzJbgBW3OG0gxLYbtCrlVTb AbDJ5nH0C/0dBPCINxa4CExak1xv/ZM6sMCR8PTyvm34fkVENU9HTQh5e+to9gilJ+0J1R6MMSy5 Bvl3UUo6jQITAewwbJfXG2hC15r0ZDgNlxRbUbKGltNFPz9tCXkG+XnE3ygbRNM6gwPZhktbWXbb XlSoSIYDQcXvUusOaIaQMRrMplWgcMWHsTdcNqaibYy8jgO6KQOmEWvkzJ42AfsNiKglZ4OXIsB0 h7687oCpdEcBTA6tqN7e7WDMqh9JSUR8QS3x5RswSCecmAWEmqUTZYM5CTxIXRzRXXYtoxwJJslI s51IWWvkQgYOEMm5gvH8KSG1YNqTzC5ApbPMLXIp/KJeVQTgrE7KGhm3R0Sg4bNVuS8uG5M1amRX cNDI9yl99Q+3SfZe10J9QwAAAABJRU5ErkJggg== X-Now-Playing: His Name Is Alive's _Always Stay Sweet_: "As We Could Ever" X-Hashcash: 1:23:140812:john.b.mastro@gmail.com::mi2EiPhrZyHBldGH:00000000000000000000000000000000000000O107 X-Hashcash: 1:23:140812:emacs-devel@gnu.org::CJ+xC0C5zRc8Mvr9:000000000000000000000000000000000000000000QmgI X-Hashcash: 1:23:140812:monnier@iro.umontreal.ca::sdIGc1+lLv0qFRpU:0000000000000000000000000000000000000lL5K X-Hashcash: 1:23:140812:bozhidar.batsov@gmail.com::KxxwmS0AWCsfX5q1:000000000000000000000000000000000001S+dW In-Reply-To: (Stefan Monnier's message of "Mon, 11 Aug 2014 10:42:19 -0400") User-Agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux) X-MailScanner-ID: 1XH23i-0006v2-P8 MailScanner-NULL-Check: 1408416215.58969@4RR9zvcowiCccJSJSWHOcw X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.224.195 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:173583 Archived-At: Stefan Monnier writes: > Why do you think so? If they only work for a single binding, the > benefit is really minor. It's only when you use several bindings that > the benefit becomes more significant (the alternative being either > a very deeply nested code, or separating the var's declarations from > their initialization). I use lw:when-let all the time in Common Lisp. It only takes a single binding. I find it very clear and nice -- mostly used as a kinda "early return" thing, but without the return. (defun foo (zot) (when-let (bar (compute-something zot)) ...)) I grepped through a random directory in our code base, and out of 146 uses of when-let, 6 had nested when-lets. There's lw:when-let*, though, which is like Emacs' when-let (i.e., several bindings), which is used two times. Anyway, I think Emacs' when-let is a good addition as it is now. Even if the multiple-let-binding version doesn't get used much, it's nice when you need it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no