[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:

http://srfi.schemers.org/srfi-45/srfi-45.html
http://srfi.schemers.org/srfi-45/post-mail-archive/maillist.html

Particularly:

http://srfi.schemers.org/srfi-45/post-mail-archive/msg00011.html
http://srfi.schemers.org/srfi-45/post-mail-archive/msg00013.html


Posted on the users mailing list.