From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: a rehash of the question of optimizing some prompt ideoms Date: Sat, 31 Aug 2013 00:35:20 -0400 Message-ID: <87k3j232bb.fsf@tines.lan> References: <2849568.naTrYEPBA4@warperdoze> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1377923762 13391 80.91.229.3 (31 Aug 2013 04:36:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 31 Aug 2013 04:36:02 +0000 (UTC) Cc: guile-devel@gnu.org To: Stefan Israelsson Tampe Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Aug 31 06:36:04 2013 Return-path: Envelope-to: guile-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 1VFcup-0005lW-8Z for guile-devel@m.gmane.org; Sat, 31 Aug 2013 06:36:03 +0200 Original-Received: from localhost ([::1]:53261 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFcuo-0004Kz-Me for guile-devel@m.gmane.org; Sat, 31 Aug 2013 00:36:02 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46967) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFcuf-0004Ki-H8 for guile-devel@gnu.org; Sat, 31 Aug 2013 00:36:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VFcuY-0005gO-3X for guile-devel@gnu.org; Sat, 31 Aug 2013 00:35:53 -0400 Original-Received: from world.peace.net ([96.39.62.75]:46147) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFcuX-0005fs-Uy for guile-devel@gnu.org; Sat, 31 Aug 2013 00:35:46 -0400 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=tines.lan) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1VFcuG-00011h-Vd; Sat, 31 Aug 2013 00:35:29 -0400 In-Reply-To: <2849568.naTrYEPBA4@warperdoze> (Stefan Israelsson Tampe's message of "Fri, 30 Aug 2013 20:54:35 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 96.39.62.75 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:16599 Archived-At: Hi Stefan, Stefan Israelsson Tampe writes: > Delimeted continuations can be looked upon as a generalization of > common lisps tagbody e.g. it's trivial to produce tagbody semantics > with the help of prompts. I haven't yet digested the rest of your email, but I wanted to point out that prompts are not needed to produce Common Lisp 'tagbody' semantics. All that's needed is a set of mutually-recursive local procedures that tail call each other. Each local procedure corresponds to a label, and the tail calls correspond to GOTOs. In fact, one of the earliest papers on Scheme, "LAMBDA, The Ultimate Imperative" published in 1976, showed how to convert arbitrary Lisp 'PROG' forms into a very early version of Scheme. Note that Lisp 'PROG' was a combined 'let', 'block', and 'tagbody', and can do everything that Common Lisp's 'tagbody' can do. Regards, Mark