Hi all, after a lot of time, a new version of Logic Expressions is now available on SqueakMap.
How would you write the N-Queens in your Prolog-like language ? http://www.sics.se/sicstus/docs/3.12.5/html/sicstus/N-Queens.html
Cheers, Alexandre
From the package description:
This is a model of first order logic expressions, allowing you to manipulate them as objects instead of just strings.
Prerequisites: -Refactoring Browser -SmaCC Runtime Package -SmaCC Development Package
Inspect the following lines to get the expression corresponding to "(p => q) = (not p or q)": | p q | p := LVariable named: 'p'. q := LVariable named: 'q'. p => q equiv: (p not | q).
Now, the same formula could be created using: LExpression fromString: '{p=>q = not p or q}'
More complex formulas can also be created and evaluated, for example try: | exp | exp := LExpression fromString: '{V(x)[x even]}'. exp valueDomains: {'x' -> #(2 4 6 8 10 12 )}.
See more examples in the Logic-Tests category.
I hope you enjoy it! Dany