On Fri, Jan 6, 2012 at 9:49 AM, Mark H Weaver <m...@netris.org> 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