[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Draft 3 Comments: Chapter 4
Denis Washington scripsit:
> Thinking about it, leaving this unspecified makes sense as one couldn't
> use "when" and "unless" to return a value from a procedure anyway
> without risking an unspecified return value (if the test evaluates to #f
> or #t, respectively).
> On the other hand, "begin" in an expression context also a sole
> side-effect construct (otherwise, all expressions except the last in a
> "begin" form would be useless) and still returns the last expression's
> result. Given that "when" and "unless" are very similar, I find it to be
> pretty intuitive if they have the same behavior. I'm undecided.
The difference is that BEGIN can have a value if its last argument does, but
you can't ever rely on WHEN or UNTIL having a value, so you can only
use it for effect portably. That being so, it might as well return
an unspecified value in all cases.
> Maybe optional arguments should should be done in WG2 instead (together
> with keyword arguments, maybe). However, this has been voted upon
> already by the working group, so I haven't commented on the decision.
Optional arguments are on the WG2 docket.
Keyword arguments can be done in R5RS without extra machinery, provided you
are willing to export them as identifiers: see KeywordsArcfide.
BALIN FUNDINUL UZBAD KHAZADDUMU cowan@x
BALIN SON OF FUNDIN LORD OF KHAZAD-DUM http://www.ccil.org/~cowan
Scheme-reports mailing list