====== CurryWiki ====== ==== A Truly Integrated Functional Logic Language ==== Curry is a universal programming language aiming to amalgamate the most important declarative programming paradigms, namely [[http://www.cs.nott.ac.uk/Department/Staff/gmh/faq.html | functional programming]] and [[http://www.comlab.ox.ac.uk/archive/logic-prog.html | logic programming]]. Moreover, it also covers the most important operational principles developed in the area of integrated [[http://www.informatik.uni-kiel.de/~mh/FLP | functional logic languages]]: "residuation" and "narrowing" (there is an [[http://www.informatik.uni-kiel.de/~mh/publications/papers/JLP94.html | older survey]] and a [[http://www.informatik.uni-kiel.de/~mh/papers/ICLP07.html | newer survey]] on functional logic programming). Curry combines in a seamless way features from functional programming (nested expressions, higher-order functions, lazy evaluation), logic programming (logical variables, partial data structures, built-in search), and concurrent programming (concurrent evaluation of expressions with synchronization on logical variables). Moreover, Curry provides additional features in comparison to the pure languages (compared to functional programming: search, computing with partial information; compared to logic programming: more efficient evaluation due to the deterministic and demand-driven evaluation of functions). The development of Curry is an international initiative intended to provide a common platform for the research, teaching and application of integrated functional logic languages. The design of Curry is mainly discussed in the [[documentation:mailing | Curry mailing list]]. A [[documentation:Curry Report | detailed report ]] describing the language is available. {{ logos:curry_8h.png?200}}