From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?xaB0xJtww6FuIE7Em21lYw==?= Subject: Re: [PATCH 0/5] loop over headlines in active region Date: Wed, 07 Sep 2011 21:34:41 +0200 Message-ID: <87bouw404u.fsf@gmail.com> References: <87obzpl3ec.fsf@gnu.org> <1314246334-5053-1-git-send-email-dmaus@ictsoc.de> <87d3ftiz11.fsf@gmail.com> <87zkitabb4.wl%dmaus@ictsoc.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:52832) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R1NyV-0005Tl-MO for emacs-orgmode@gnu.org; Wed, 07 Sep 2011 15:39:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R1NyR-0004Js-1N for emacs-orgmode@gnu.org; Wed, 07 Sep 2011 15:39:55 -0400 Received: from mail-ey0-f171.google.com ([209.85.215.171]:54870) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R1NyQ-0004Jm-Rp for emacs-orgmode@gnu.org; Wed, 07 Sep 2011 15:39:50 -0400 Received: by eyg24 with SMTP id 24so8118862eyg.30 for ; Wed, 07 Sep 2011 12:39:49 -0700 (PDT) In-Reply-To: <87zkitabb4.wl%dmaus@ictsoc.de> (David Maus's message of "Sun, 28 Aug 2011 15:57:19 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: David Maus Cc: emacs-orgmode@gnu.org On Sun, 28 Aug 2011 15:57:19 +0200 David Maus wrote: > At Thu, 25 Aug 2011 12:08:42 +0200, > =C5=A0t=C4=9Bp=C3=A1n N=C4=9Bmec wrote: >>=20 >> On Thu, 25 Aug 2011 06:25:29 +0200 >> David Maus wrote: >>=20 >> > As for the macro: What stop me to implement a macro for the generic >> > operation is that for now the macro would depend on the global >> > customization variable. That's not a problem per se but according to >> > my readings about macros (mostly in context of Common Lisp, but that >> > shouldn't matter) it should be considered bad style. >>=20 >> Could you expand on this a bit? As far as I can tell, you obviously >> shouldn't depend on a customisation variable at macro expansion time, >> but I don't see how depending on it at run time is any different from a >> function doing the same. >>=20 > > At expansion time the macro performs a transformation of the lisp at > the place where the macro is used. At runtime the code of the expanded > macro runs in the scope of the function where the macro was expanded > into. A macro that uses a variable inside the expanded code that is > not under its control (e.g. part of the argument list or gensym'd) is > prone to introduce a bug caused by expanding the macro in an > environment where this variable is not bound or used with a different > semantics. > > In this particular case this should not be a problem indeed because we > use a global dynamically scoped customization variable. Thus, > whereever we would use the macro we can be sure the variable in the > macro expansion is bound and carries the same meaning. So your "what stop me to implement a macro" argument is bogus, isn't it? I can't really comment on whether using a macro or not is the right thing here, but it seems to me you shouldn't base the decision on an invalid argument (IOW, from the fact that you even felt the need to explain why you didn't use a macro to begin with, it would appear to be the case that you would have preferred the macro way). --=20 =C5=A0t=C4=9Bp=C3=A1n