Re: [Scheme-reports] Cycle detection problems: #442, #338, "equal?"
Vassil Nikolov 04 Sep 2012 02:09 UTC
On Mon, 03 Sep 2012 13:42:23 -0700, Ray Dillinger <bear@sonic.net> said:
> On 08/31/2012 08:15 PM, Vassil Nikolov wrote:
>>
>> On Wed, 29 Aug 2012 21:26:57 -0700, Ray Dillinger <bear@sonic.net>
>> said:
>>> ... Results other than #t or #f (which include exception throwing
>>> and infinite looping) expand the domain of the function, which
>>> means that a function is not in fact a predicate.
>>
>> Er... what includes exception throwing and infinite looping? Are
>> these possible _results_?
> Of course they are. "Results" is not a term restricted to normal
> values returned from a function call.
Maybe it is not worth arguing about terminology, but I believe these
are outcomes, not results, so, for the arguments for which the
outcome is an infinite loop or the throwing of an exception, the
function is undefined, and these arguments do not belong to its
domain.
> Having results of calling a function not limited to normal returns,
> complicates semantics in exactly the same way as other side effects.
> Like mutation, It should not be done unless truly necessary.
I disagree these are side effects, but again, maybe this is not so
important right now; I agree that the more cases there are in which
a function is undefined, the more complicated the semantics, but
such complications have to be accommodated _somewhere_, whether by
the caller or by the called.
---Vassil.
--
Vassil Nikolov | Васил Николов | <vnikolov@pobox.com>
"Be careful how you fix what you don't understand." (Brooks 2010, 185)
_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports