From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Hans Aberg Newsgroups: gmane.lisp.guile.devel Subject: Re: Avoiding variable clashes Date: Wed, 13 Apr 2011 16:34:03 +0200 Message-ID: <6388D072-D554-4C60-AAAE-9E3E9CB8E54D@telia.com> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1302705309 30183 80.91.229.12 (13 Apr 2011 14:35:09 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 13 Apr 2011 14:35:09 +0000 (UTC) Cc: guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Apr 13 16:35:00 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QA19n-0001rg-Ng for guile-devel@m.gmane.org; Wed, 13 Apr 2011 16:34:59 +0200 Original-Received: from localhost ([::1]:41299 helo=lists2.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QA19n-0005Dc-7X for guile-devel@m.gmane.org; Wed, 13 Apr 2011 10:34:59 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:52264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QA19g-0005C3-4c for guile-devel@gnu.org; Wed, 13 Apr 2011 10:34:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QA19a-0000YV-NI for guile-devel@gnu.org; Wed, 13 Apr 2011 10:34:52 -0400 Original-Received: from smtp-out12.han.skanova.net ([195.67.226.212]:49177) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QA19a-0000Wu-HH for guile-devel@gnu.org; Wed, 13 Apr 2011 10:34:46 -0400 Original-Received: from [10.0.1.2] (217.210.127.13) by smtp-out12.han.skanova.net (8.5.133) (authenticated as u26619196) id 4D65154400EBE1B5; Wed, 13 Apr 2011 16:34:04 +0200 In-Reply-To: X-Mailer: Apple Mail (2.1084) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 195.67.226.212 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12235 Archived-At: On 13 Apr 2011, at 16:19, Andy Wingo wrote: >> What method is Guile using to avoid substitution variable clashes (de >> Bruijn numbers, combinators, etc.)? >=20 > Each lexical variable is given a fresh name (a gensym) when it is > introduced. The expander keeps an environment as to what name maps to > what gensym, and residualizes the gensym in the lexical reference or > assignment. >=20 > See "The Scheme Compiler" in the manual, for more. I am thinking about it in the context of other types of binders, that = satisfies the alpha-rule, but not the beta, useful in math (like theorem = provers). Has that been discussed? Hans