From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Josef Wolf Newsgroups: gmane.lisp.guile.user Subject: Re: Need help to understand a macro Date: Mon, 22 Mar 2010 21:54:38 +0100 Message-ID: <20100322205438.GE31143@raven.wolf.lan> References: <20100319085701.GA31143@raven.wolf.lan> <8E63698F-D6FF-4E42-8B6A-D2DE697C3E98@raeburn.org> <20100322192556.GB31143@raven.wolf.lan> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1269291728 24611 80.91.229.12 (22 Mar 2010 21:02:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 22 Mar 2010 21:02:08 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Mar 22 22:02:04 2010 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ntol9-0001vs-Jn for guile-user@m.gmane.org; Mon, 22 Mar 2010 22:02:03 +0100 Original-Received: from localhost ([127.0.0.1]:59994 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ntol9-0005js-3o for guile-user@m.gmane.org; Mon, 22 Mar 2010 17:02:03 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NtojO-0005M1-CD for guile-user@gnu.org; Mon, 22 Mar 2010 17:00:14 -0400 Original-Received: from [140.186.70.92] (port=41870 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NtojN-0005Lt-9c for guile-user@gnu.org; Mon, 22 Mar 2010 17:00:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NtojL-0001kC-QC for guile-user@gnu.org; Mon, 22 Mar 2010 17:00:13 -0400 Original-Received: from quechua.inka.de ([193.197.184.2]:37087 helo=mail.inka.de) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NtojL-0001k1-KA for guile-user@gnu.org; Mon, 22 Mar 2010 17:00:11 -0400 Original-Received: from raven.inka.de (uucp@[127.0.0.1]) by mail.inka.de with uucp (rmailwrap 0.5) id 1NtojK-0000yj-2K; Mon, 22 Mar 2010 22:00:10 +0100 Original-Received: by raven.inka.de (Postfix, from userid 1000) id E0150760B2; Mon, 22 Mar 2010 21:54:38 +0100 (CET) Mail-Followup-To: Josef Wolf , guile-user@gnu.org Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:7711 Archived-At: On Mon, Mar 22, 2010 at 09:16:34PM +0100, Andy Wingo wrote: > Hi Josef, > > I seem to be the negative guy in replies to you. Uh? I did not notice anything negative? > Apologies for that! I don't see any reason for you to apologize... > On Mon 22 Mar 2010 20:25, Josef Wolf writes: > > > On Fri, Mar 19, 2010 at 08:54:02AM -0400, Ken Raeburn wrote: > >> > >> The result of (if #f #f) is unspecified, not #f, according to r5rs. > >> That means an implementation can produce whatever value it wants. > > In the R6RS, evaluating `(if #f #f)' returns "unspecified values" -- > that is, even the number of values is unspecified. And in fact it would > make sense for `(if #f #f)' to be the same as `(values)' -- an > expression returning zero values. As I understood this, the "no values" variant is a guile extension and not guaranteed by the standard... > > I think I like this type of "unspecified". Much better than the > > "undefined behavior" definition in C. > > Unfortunately it really is unspecified :) OK it's better than C, in the > sense that it won't launch the missiles, but it would be better if > evaluating: > > (+ 2 (if #f #f)) > > yielded an error of "too few values to continuation" rather than "don't > know how to add #". Even better would be "too few values for '+'" or something. Oh, and a line number.