[plt-scheme] why should black holes be exceptions, rather than divergence?

From: Stephen Chang (stchang at ccs.neu.edu)
Date: Mon May 31 10:39:26 EDT 2010

> I have been thinking about Scheme's implementation of "black holes",
> or provable divergence, as errors. That is,
>> (letrec [(x (delay (force x)))] (force x))
> raises an error rather than diverges.
> Can someone refer me to or give me historical background or motivations
> of this particular design choice?

I think the answer is just that there are very few use cases where
someone would actually want to write the above code.

For background, check here:




Posted on the users mailing list.