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 [email protected] BALIN SON OF FUNDIN LORD OF KHAZAD-DUM http://www.ccil.org/~cowan _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
