From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tom Breton (Tehom)" Subject: Re: Docs submitted (Was Re: Advice sought on managing decision alternatives.) Date: Wed, 11 Feb 2009 15:02:23 -0500 (EST) Message-ID: <1045.65.96.63.84.1234382543.squirrel@mail.panix.com> References: <20090101170227.C707734803@mail2.panix.com> <1036.24.63.0.170.1233950825.squirrel@mail.panix.com> <60BDFE6D-6B8C-4A23-A737-67DC1F523C79@uva.nl> <1044.66.30.185.29.1234039592.squirrel@mail.panix.com> <6444D654-9B7B-415D-A6DB-F3BADCB1EE2A@uva.nl> <1451.24.63.21.131.1234124707.squirrel@mail.panix.com> <8BD25355-1218-4DB5-9C85-77EA011540D0@uva.nl> <1555.24.62.30.15.1234235653.squirrel@mail.panix.com> <1062.24.62.30.15.1234314505.squirrel@mail.panix.com> <3AFEF956-A0A1-4777-B02C-4ECC58844EDB@uva.nl> Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LXLHw-0000ue-Er for emacs-orgmode@gnu.org; Wed, 11 Feb 2009 15:02:28 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LXLHu-0000sv-Tt for emacs-orgmode@gnu.org; Wed, 11 Feb 2009 15:02:28 -0500 Received: from [199.232.76.173] (port=45660 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LXLHu-0000sm-RW for emacs-orgmode@gnu.org; Wed, 11 Feb 2009 15:02:26 -0500 Received: from mail2.panix.com ([166.84.1.73]:55915) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LXLHu-0006lk-7X for emacs-orgmode@gnu.org; Wed, 11 Feb 2009 15:02:26 -0500 In-Reply-To: <3AFEF956-A0A1-4777-B02C-4ECC58844EDB@uva.nl> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Carsten Dominik Cc: emacs-orgmode@gnu.org > > Hi Tom, > > maybe you can educate me: I have never understood what the "#" does > in code like the one you have here. You are using it, so maybe you > know? > > - Carsten > > Here, it's #' that it of interest, not # alone. At the most direct level, it quotes the symbol with `function' instead of `quote'. For example: (format "%s" ' 'foo) =3D> "(quote foo)" (format "%s" ' #'foo) =3D> "(function foo)" What it accomplishes: * In some contexts, it is needed to get a symbol's function binding instead of its value binding. * It alerts the byte-compiler that it's seeing a function, so it can perform certain optimizations (I don't know offhand exactly what). * Stylistically, it alerts the reader. It's an imitation of Common Lisp's reader macro #' which does sort of the same thing. At the syntax level, it's really a combination of # which signals a reader macro - though in emacs, it's all hard-coded and inextensible - an= d ' which stands for the function-quote reader macro. FWIW, what I added to lread.c was an extension of the reader macro facility at RMS' request, so you definitely asked the right guy. Tom Breton (Tehom)