On 11/12/18 5:40 PM, Jeffrey Brown wrote:
Is this kind of performance a reasonable thing to expect from Curry? If so, using which compiler? If not, can you recommend another language?
Hi Jeff, here are some general remarks about the performance of Curry. Since Curry combines functional and logic programming, you cannot expect to be faster than purely functional or purely logic languages. Although the combination might have its costs, one can try a pay-per-view implementation so that you pay only if you use the features. For instance, if non-determinism is not used, the KiCS2 implementation, which compiles Curry to Haskell, is almost as fast as Haskell. The only price are additional arguments for each function which are passed around. However, if you heavily use non-determinism, the KiCS2 implementation, which also implements breadth-first search and iterative deepening (beyond depth-first search as in Prolog), become less efficient than a backtracking-based Prolog implementation (like PAKCS), but this is incomplete as Prolog. In contrast to Mercury, high performance is not our main goal. I see no principle problems to achieve it with clever analysis tools, but this requires more implementation efforts. Nevertheless, our current implementations are sufficient for us to develop applications with Curry, but maybe not the ones you have in mind. Best regards, Michael