Re: Curry design

From: John Lloyd <>
Date: Thu, 3 Jul 1997 13:45:32 +0100 (BST)

Here are some replies to some of Michael's points:

> I am also in a good position since the last sentence is also true
> of you replace "Escher" by "Curry" :-)

Well if Haskell is a subset of Escher and Escher is a subset of Curry,
then Curry also includes Haskell. QED. This isn't the point. Haskell is
already very expressive. Escher adds logic programming facilities powerful
enough to easily encode typical Prolog-like programs together with sets.
Do we need to go further? I really think we can argue at the abstract
level forever on this - what we need are some concrete programs. And I think
the ball is in the narrowing court. I say rewriting is enough. Let's see
the examples which refute this!

> In other words, you do not consider "Concurrent Constraint" languages
> like Oz or Goffin as concurrent?

Well I have no problem accepting that Goffin and Oz are concurrent. A good
test is whether one can write typical concurrent examples, for example,

   dining philosophers (a synchronization problem)
   server-clients communicating on a channel (a communication problem)

These make good test cases to discuss. I believe you can write these
straightforwardly in Goffin and Oz. But I haven't any idea at all how to
write them in Escher using only the mechanism which delays calls that aren't
sufficiently instantiated - it doesn't appear to provide enough control.
(If it is possible, please show me how!) So something more is needed.
I decided to add something like the concurrent Haskell proposal which I
believe leads to elegant looking concurrent programs. Certainly the above
two test cases look very acceptable. (I'll post these when I've sorted out
some syntactic details.)

> Maybe your different understanding is due to the fact that you
> are not interested in complete constraint solvers. However,
> providing complete constraint solvers requires a different
> view of constraints. Thus, the equality symbol is usually interpreted
> as strict equality, and also the CLP framework of Jaffar/Lassez
> distinguishes between constraints and other user-defined predicates.

Escher doesn't have the same idea of completeness as Curry. The only
completeness that could be offered is a guarantee of reaching some kind
of normal form. I don't believe there is much prospect of a useful general
result of this kind for Escher. For example, the rewrites for the connectives
and quantifiers are highly selective. I only included what I consider
essential. So you are right - I don't put a high priority on having a
completeness result. (Given that I spent several years of my life proving
completeness results for SLDNF-resolution, I don't feel bad about this!)

Received on Do Jul 03 1997 - 15:31:00 CEST

This archive was generated by hypermail 2.3.0 : Di Sep 29 2020 - 07:15:02 CEST