Hostname: page-component-77f85d65b8-lfk5g Total loading time: 0 Render date: 2026-03-27T04:34:25.493Z Has data issue: false hasContentIssue false

Monadic constraint programming

Published online by Cambridge University Press:  14 August 2009

TOM SCHRIJVERS
Affiliation:
Department of Computer Science, K.U.Leuven, Leuven, Belgium (e-mail: tom.schrijvers@cs.kuleuven.be)
PETER STUCKEY
Affiliation:
National ICT Australia, Victoria Laboratory, Department of Computer Science and Software Engineering, University of Melbourne, Melbourne, Australia (e-mail: pjs@cs.mu.OZ.AU)
PHILIP WADLER
Affiliation:
School of Informatics, University of Edinburgh, Edinburgh, Scotland, UK (e-mail: philip.wadler@ed.ac.uk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2009
Submit a response

Discussions

No Discussions have been published for this article.