Falcon: Functional and Logic Language with Constraints

A draft prepared for the chapter 6 of my Ph.D thesis: Deenition al Constraint Programming 1 This chapter presents a deenitional constraint language, Falcon (Functional And Logic language with CONstraints) designed to integrate functional and logic programming languages. Syntactically, Falcon features guarded functional rewrite rules and relations deended over functional expressions. Constraints, which can involve deened functions, may appear in relation deenitions. Semantically, Falcon is a constraint logic programming language where the underlying constraint system may be superimposed with functional programs. That is, any Falcon program deenes relational constraints over a constraint system enriched by a functional programming system. The development of Falcon shows that a systematical integration of functional and logic programming paradigms can be achieved within the DCP framework.