* Am 10.04.07 schrieb Emilio Jesús Gallego Arias:
>
> Sebastian Hanowski <seha_at_informatik.uni-kiel.de> writes:
> >
> > Expressing choice by appending lists leads to backtracking which is
> > incomplete in presence of infinite paths. Like 0 will never be
> > considered here:
> >
> > [1..] ++ [0]
>
> Umm, why not use other operator rather than ++.
With possibly non-terminating computations this is not only an issue of
datastructure traversal. You must also prepare for the case of one of
your computations failing to return a constructor rooted expression due
to looping.
Non-determinism is set to deal with finite, hence observable failure.
fail `amb` x = x
x `amb` fail = x
But to have choice expressing real alternatives one would also like it
to cope with unobservable failure.
bot `amb` x = x
x `amb` bot = x
> > But besides functional programming FLP seems to have strong roots in
> > term rewriting and logic programming. Which could speak against
> > ^^^^^^^^^^^^^^^^^^^^^^^^^
> > seeing non-determinism as a mere effect in otherwise purely
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > functional programs.
>
> Umm, I'm not really sure about that. Why?
In order to make the above equations hold one needs to capture partialty
as an effect too. But I can't see how combine this with nondet at the
moment.
Best regards,
Sebastian
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Fr Apr 20 2007 - 09:09:43 CEST