Archive for August, 2011

Monadic Constraint Solver published on Codeplex

I continued working on the constraint solver from my previous entry and decided to publish the project on Codeplex since it allows easy updates.

Summary of changes:

  • The monad framework has been refactored; StateMonadT is now called StateListMonad and monad control functions such as mapM and mapM_ are now member functions mimicking the design of FML. The actual builder instance has been renamed from stateMT to cp (constraint program) which hopefully is more logical.
  • A new condition compareBy has been added.
  • An experimental addMultiVariableConstraint has been added which was intended as an embryo for constraint expressions like x + 1 < y where x and y are constraint variables.
  • New sample: N-queen solver
  • Extended the Sudoku sample with a Sudoku generator based on this article.
  • Refactoring; splitting the code into separate F# modules
Categories: Uncategorized