Introducing Constraint Functional Logic Programming

  • John Darlington
  • Yike Guo
  • Helen Pull
Conference paper
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


A new declarative programming paradigm, constraint functional logic programming (CFLP) is presented, which unifies systematically all features of constraint, functional and logic programming. CFLP extends constraint functional programming (CFP), which supports equation solving over a functional program, to general constraint programming permitting the use of constraints for programming as well as for posing queries. It also generalises constraint logic programming (CLP), by admitting user-defined functions as a purely functional subsystem of a CLP language. This paper presents the motivation for designing CFLP and its semantics. Programming examples are given in the concrete CFLP language Falcon.


Logic Program Logic Programming Constraint Programming Constraint System Functional Programming 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    H. Ait-Kaci and R. Nast. Integrating logic and functional programming. Lisp and Symbolic Computation, 2 (1), February 1989.Google Scholar
  2. [2]
    A. Colmerauer. Prolog and infinite trees. In K.L. Clark and S.A. Tarnlund. editors, Logic Programming. Academic Press, New Yok, 1982.Google Scholar
  3. [3]
    A. Colmerauer. Opening the Prolog III universe. Byte, July, 1987.Google Scholar
  4. [4]
    Haskell Committee. Haskell: A non-strict, purely functional language. Technical report, Dept. of Computer Science, Yale University. April 1990.Google Scholar
  5. [51]
    J. Darlington and Y. Guo. Constraint equational deduction. Technical report. Dept. of Computing, Imperial College. March 1990. will he presented in CTRS’ 90.Google Scholar
  6. [6]
    J. Darlington. Y.K. Guo, and II. Pull. The design of constraint functional logic programming. Technical report. Dept. of Computing, Imperial College. March 1991. Deliverable for the ESPRIT Basic Research Action No.3147.Google Scholar
  7. [7]
    John Darlington and Yike Guo. Constraint functional programming. Technical report, Imperial College. November 1989.Google Scholar
  8. [8]
    C. Moiso E. Giovannetti. G. Levi and C. Palmidessi. “kernel leaf: An” experimental logic plus functional language - its syntax, semantics and computational model. ESPRIT Project 415, Second Year Report, 1986.Google Scholar
  9. plus functional language Google Scholar
  10. [10]
    Y. Guo, H. Lock, J. Darlington, and R. Dietrich. A classification for the integration of functional and logic languages. Technical report, Dept. of Computing, Imperial College and GMD Forchungsstelle an der Universitat Karlsruhe, March 1990. Deliverable for the ESPRIT Basic Research Action No.3147.Google Scholar
  11. [11]
    Y.K. Guo and H. Pull. Falcon: Functional And Logic language with CONonstraints—language definition. Technical report, Dept. of Computing, Imperial College, February 1991.Google Scholar
  12. [12]
    G. Huet. Constrained Resolution: A Complete Method for Higher-Order Logic. PhD thesis. Case Western Reserve University, 1972.Google Scholar
  13. [13]
    Joxan Jaffar and Jean-Louis Lassez. Constraint logic programming. In Prod. of POPL 87. pages 111–119. 1987.CrossRefGoogle Scholar
  14. [14]
    Richard B. Kieburtz. Functional+ logic in theory and practice. Technical report. Oregon Graduate Center, Beaverton, Oregon 97006 U.S.A., February 1987.Google Scholar
  15. [15]
    J-L. Lassez and K. McAloon. A constraint sequent calculus. Technical report, IBM T.J. Watson Research Center, 1989.Google Scholar
  16. [16]
    William Leler. Specification and Generation of Constraint Satisfaction Systems. PhD thesis, The University of North Carolina at Chapel Hill, February 1987.Google Scholar
  17. [17]
    Hendrik C.R. Lock. Guarded Term ML. In Workshop on Implementations of Lazy Functional Languages, Aspenas,Sweden, Sept. 1988.Google Scholar
  18. [18]
    Gopalan Nadathur and Dale Miller. An overview of A-Prolog. Technical report, Computer and Information Science Department, Univ. of Pennsylvania, March 1988.Google Scholar
  19. [19]
    Helen M. Pull. Equation Solving in Lazy Functional Languages. PhD thesis, Submitted to Dept. of Computing, Imperial College, University of London, November 1990.Google Scholar
  20. [20]
    Uday S. Reddy. Functional Logic Languages, Part 1. In J.H. Fasel and R.M. Keller. editors, Poceedings of a Workshop on Graph Reduction, Santa Fee, number 279 in Lecture Notes in Computer Science, Springer Verlag, pages 401–425, 1986.Google Scholar
  21. [21]
    Frank S. K. Silbermann and B. Jayazraman. Set abstraction in functional and logic programming. In Proc. of FPCA 89’. 1989.Google Scholar
  22. [22]
    Gert Smolka. Logic Programming over Polymorphically Order-Sorted Types. PhD thesis. Vom Fachbereich Informatik der Universitat Kaiserlautern, May 1989.Google Scholar
  23. [23]
    G.L. Steele. The Definition and Implementation of a Computer Programming Language Based on Constraints. PhD thesis, M.I.T. AI-TR 595, 1980.Google Scholar
  24. [24]
    D.H.D. Warren. Higher-order extension to Prolog: are they needed? In Machine Intelligence 10. Ellis Horwood Ltd., 1982.Google Scholar

Copyright information

© Springer-Verlag London 1992

Authors and Affiliations

  • John Darlington
    • 1
  • Yike Guo
    • 1
  • Helen Pull
    • 1
  1. 1.Department of Computing Imperial CollegeUniversity of LondonLondonUK

Personalised recommendations