Abstract
A constraint programming system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about satisfiability of conjunctions of constraints, and the search engine controls the search for solutions by iteratively exploring a disjunctive search tree defined by the constraint program. In this paper we give a monadic definition of constraint programming in which the solver is defined as a monad threaded through the monadic search tree. We are then able to define search and search strategies as first-class objects that can themselves be built or extended by composable search transformers. Search transformers give a powerful and unifying approach to viewing search in constraint programming, and the resulting constraint programming system is first class and extremely flexible. © 2009 Cambridge University Press.
Cite
CITATION STYLE
Schrijvers, T., Stuckey, P., & Wadler, P. (2009). Monadic constraint programming. Journal of Functional Programming, 19(6), 663–697. https://doi.org/10.1017/S0956796809990086
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.