Hello!
Disclaimer: I have not worked in either of the languages I am talking about (Curry, Mercury).
Curry is logical, but it uses different logic mechanisms than Prolog.
Curry is using something called "narrowing" which is very different to Prolog's SLD-resolution. AFAICT narrowing (or needed narrowing) corresponds to lazy evaluation while SLD-resolution corresponds to strict evaluation.
Mercury is another language to combine functional and logical features. But while Curry is Haskell-based with added mechanism of narrowing, Mercury is Prolog-based with Haskell-like type system. As Mercury is based on Prolog, there is an interesting part of a type system that corresponds to in/out parameters of a predicate. A predicate may also have multiple type signatures (since a some parameters may be in/out switched). The way Mercury treats IO in a pure way is also interesting (IIRC it uses something called unique parameter for the World).
I see both languages as "pure". Both languages have pure functional parts (deterministic functions in Curry and function signatures in Mercury).
I may be wrong, but it seems that of those two languages Mercury is a bit "more alive".
Best,
Nick