How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A filtering algorithm for constraints of difference in CSPs
AAAI '94 Proceedings of the twelfth national conference on Artificial intelligence (vol. 1)
Alma-O: an imperative language that supports declarative programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
The OPL optimization programming language
The OPL optimization programming language
Comparing trailing and copying for constraint programming
Proceedings of the 1999 international conference on Logic programming
ACM Transactions on Computational Logic (TOCL)
SALSA: A Language for Search Algorithms
Constraints
JELIA '96 Proceedings of the European Workshop on Logics in Artificial Intelligence
A denotational semantics of inheritance
A denotational semantics of inheritance
Journal of Functional Programming
Backtracking, interleaving, and terminating monad transformers: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Constraint-Based Local Search
FUNCTIONAL PEARL: A program to solve Sudoku
Journal of Functional Programming
Nondeterministic Control for Hybrid Search
Constraints
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
On a tighter integration of functional and logic programming
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
High-level nondeterministic abstractions in c++
CP'06 Proceedings of the 12th international conference on Principles and Practice of Constraint Programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Generic programming with c++ concepts and haskell type classes: A comparison
Journal of Functional Programming
Parameterized models for on-line and off-line use
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
CP'11 Proceedings of the 17th international conference on Principles and practice of constraint programming
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Haskell type constraints unleashed
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Tor: extensible search with hookable disjunction
Proceedings of the 14th symposium on Principles and practice of declarative programming
An algebraic presentation of predicate logic
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Constraints
Hi-index | 0.00 |
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.