On Wed, Mar 28, 2012 at 2:49 PM, Alan Watson <[email protected]> wrote:

> Formal Comment
>
> Submitter's Name:           Alan Watson
> Submitter's Email Address:  [email protected]
> Draft Version of Report:    6
> Section of draft R7RS:      6.13.4 System interface
>
> The draft R7RS follows the R6RS in specifying that (exit) is a
> normal exit, specifying that (exit #f) is an abnormal exit, and
> leaving the interpretation of arguments other than #f to the
> implementation.
>
> I suggest that the R7RS should specify that (exit #t) is identical
> to (exit). (Perhaps it would be clearer to state that (exit #t) is
> a normal exit and (exit) is identical to (exit #t)).
>
>
Should it perhaps be similar to what is defined in section 6.3 (i.e.
similar to if's <Test>)?

"
Of all the Scheme values, only #f counts as false in condi-
tional expressions. All other Scheme values, including #t,
count as true
"

and leave it as implementation defined if the value passed to exit is
actually returned
to the OS/system below Scheme.

I think this might get hairy, but it was the first thing to come to mind
upon reading Mr. Watson's comment.



> This allows the exit status to be handled more uniformly by code
> which might exit normally or abnormally. For example, in a compiler
> it is often useful to continue after a syntax error, but in this
> case one still wants to indicate an abnormal exit. If (exit #t) is
> specified as above, one simply has to keep track of whether an error
> has occurred in a boolean variable and then:
>
>  (exit (not error-occurred))
>
> rather than the more cumbersome:
>
>  (if error-occurred
>    (exit #f)
>    (exit))
>
>
> _______________________________________________
> Scheme-reports mailing list
> [email protected]
> http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
>

-- 
====
Q. How many Prolog programmers does it take to change a lightbulb?
A. No.
_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to