guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why not support (begin), (cond), (case-lambda), etc?


From: Alex Shinn
Subject: Re: Why not support (begin), (cond), (case-lambda), etc?
Date: Fri, 6 Jan 2012 12:37:02 +0900

On Fri, Jan 6, 2012 at 9:49 AM, Mark H Weaver <address@hidden> wrote:
>
> I'd like to argue in favor of supporting (begin), (cond), (case-lambda)
> and other such degenerate forms, for the same reason that we support
> (*), (+), and (let () ...).
>
> First of all: Is there any compelling reason not to support them?
> I can't think of one.  Can you?  If so, please do tell.

1. portability - these extensions may not work on other
implementations.  2. the fact that these may be indicators
or broken macros.  Suppose in general p% of macro
expansions into cond are bugs.  Since (cond) is a degenerate
form, it's reasonable to suppose that q > p% of expansions
into (cond) are bugs.  If q is larger enough than p, then it's
not worth the convenience it saves in some cases.  Not
that I have any idea what p and q are for these forms.

Note the "definition context" begin in R7RS does allow zero
arguments because expanding into zero definitions is a
common case.

-- 
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]