[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Cycle detection problems: #442, #338, "equal?"

On Mon, 03 Sep 2012 13:42:23 -0700, Ray Dillinger <bear@x> said:

> On 08/31/2012 08:15 PM, Vassil Nikolov wrote:
>> On Wed, 29 Aug 2012 21:26:57 -0700, Ray Dillinger <bear@x> 
>> 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

> 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 Nikolov | Васил Николов | <vnikolov@x>

"Be careful how you fix what you don't understand."  (Brooks 2010, 185)

Scheme-reports mailing list