[plt-scheme] to define, or to let (new twist)

From: Bradd W. Szonye (bradd+plt at szonye.com)
Date: Tue Mar 23 17:02:37 EST 2004

Paul Schlie wrote:
> How about this one:
> All expressions should yield values, and treat all unexpected argument
> type/values in a well defined as innocuous manner as possible
> consistent with the semantics of the expression (which may include
> issuing diagnostic messages), but under no circumstance should the
> program be halted upon the receipt of a diagnostic error/warning
> (unless instructed to do so); as a halted program is more likely to
> lead to catastrophic consequences, than a running program in the
> presence of unexpected data ....

Whoah! First you need to back up your premise about halted programs. A
program that keeps running in the presence of errors is much more likely
to corrupt data than one which merely halts, and corrupted data is an
especially nasty form of catastrophic failure.

Also, I don't particularly see what this has to do with the discussion
so far, nor do I believe that it's possible to define "innocuous"
behavior for major contract violations in function calls (like your
(+ <void>) example).
Bradd W. Szonye

Posted on the users mailing list.