Hi everyone,
This announcement is both intimidating and exciting for me. Intimidating as I've never
posted to this group and exciting as I welcome community interaction regarding the
Scala Monadic Constraint Solver (smocs) project located at:
The goal of this project is to provide a Constraint Satisfaction Problem solver using
monadic programming techniques. It is licensed under a BSD 3-clause license and is
intended to serve as a learning tool for developers to incorporate CSP engines into
real-world situations, be a production quality CSP library in and of itself, as well as
to give back to the Open Source community which has done so much for me
(sorry for getting a bit sappy on that last one).
Pull requests are welcome with the following caveats:
- Changes must be accompanied by some form of test case verifying the modification.
- Types and public methods are encouraged to have comments as to why they exist.
It's completely understandable to expect others to deduce how things work, or when
they are used, but *why* something exists can be difficult to derive strictly
from code.
The Wiki is admittingly thin and shall continue to be enriched. Probably the best
places to get acclimated with Smocs as it stands is to look at the following Use-Case
tests:
SolvePolynomialEquationUseCase.scala (simple algebraic equation)
SolvePositionalEquationUseCase.scala (solve for "where" a variable is relative to others)
SolveKnapsackProblemSpec.scala (Tree-based CSP to solve the Knapsack problem)
SolveAllIntervalsUseCase.scala (solves a 5-element "all intervals" CSP)
(yet another thing needing to be added to the GitHub Wiki :-)).
Thanks and I look forward to hearing from the community!
Steve