Re: Intended meaning

From: Wolfgang Lux <>
Date: Fri, 09 Nov 2007 17:10:00 +0100

Hi Sergio!

> OK, but now consider adding
> f False = failed
> The meaning of the program should remain the same, but the step
> in question becomes much more plausible.

Thank you for this clarification. So the problem can be boiled
down to this one. Given the functions
   f False = 1 + failed
   g False = success
there is a reduction of
   const (f x) (g x)
to success even if g is rigid, namely with the following steps
     const (f x) (g x)
~~> {x=False} const (1 + failed) (g False) -- narrowing (f x)
~~> {x=False} const (1 + failed) success -- reducing (g False)
~~> {x=False} succeess -- reducing const ...
and this result cannot be computed with either an outer-most strategy
(assuming g is rigid) nor an inner-most strategy (because 1+failed
has no solution).


curry mailing list
Received on Fr Nov 09 2007 - 17:51:51 CET

This archive was generated by hypermail 2.3.0 : Do Aug 06 2020 - 07:15:05 CEST