The multi-paradigm language Curry integrates features from functional, logic, and concurrent programming. In this work, we consider two well-known list-processing optimizations: short cut deforestation (from functional programming) and diierence-lists (from logic programming), and study their adaptation to our integrated setting. While short cut deforestation adapts smoothly, the use of diierence-lists in Curry is impractical due to the absence of non-strict equality in the language. Despite all, we have developed a novel transformation which achieves a similar effect over functional logic programs. Both transformations combined together yield a simple and practical method for optimizing list-processing programs.
Download Full PDF Version (Non-Commercial Use)