I've been following the discussion of non-deterministic functions with
considerable interest, and was prompted to read the rewriting logic paper from
Madrid. It seems that non-deterministic functions provide some interesting
possibilities and can significantly increase the expressiveness of an FL
language, and I would like to try writing programs with them.
However, here are my two cents worth, as regards ND functions and Curry:
If Curry is intended to occupy a position among functional-logic languages
analogous to the position of Haskell among pure, lazy functional languages ---
namely as a stable but progressive standard to "reduce unnecessary diversity"
--- then I agree with the suggestion that non-deterministic functions should
be considered as either a possible future extension, or a part of a Curry
variant, particularly since it appears such an extension would be modular.
I also think that, feature-wise, Curry has "enough", as it is. Most people
who use sound languages and might consider programming seriously in Curry will
have never had experience with a functional-logic language, and getting the
hang of that will be difficult enough. There is undoubtedly a whole new
category of programming paradigms (e.g., analagous to combinator- or
monadic-style programming in FP) waiting to be discovered in FL languages,
once they achieve more widespread use. By adding ND functions, you are adding
more power of expression, but you're also increasing the cognitive load on
users, especially since equational reasoning can break. So it seems prudent
to hold off on them for now.
--
Frank Christoph Next Solution Co. Tel: 0424-98-1811
christo_at_nextsolution.co.jp Fax: 0424-98-1500
Received on Mi Feb 05 1997 - 08:25:54 CET