clpz
core.logic
Our great sponsors
clpz | core.logic | |
---|---|---|
5 | 8 | |
172 | 1,432 | |
- | 0.2% | |
4.4 | 5.2 | |
3 months ago | 2 months ago | |
Prolog | Clojure | |
- | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
clpz
-
Logic programming is overrated, at least for logic puzzles (2013)
As pointed out in the comments in the article, these kinds of logic puzzles are easier to solve using constraint programming than "regular" logic programming.
For example, see the solution to the Zebra Puzzle here: https://www.metalevel.at/prolog/puzzles which uses CLPZ[^1].
[^1]: https://github.com/triska/clpz
-
Markus Triska Interview on Prolog
Scryer has the strings-as-lists-but-implemented-efficiently thing, possibly more strict ISO Prolog compatible syntax, and it may ship with a more advanced constraint library (I'm not clear on the relationship between SWI's clpfd and Scryer clpz).
-
is it possible to have a reversable operation
None of these are full-fledged programming languages, however. They're limited to problems that lie in the polynomial hierarchy (A class which contains P and NP). Logic programming is generally only used to solve hard problems for which no good algorithm is known. Prolog also sort of fits this niche and it has a bunch of solvers integrated into it. Notably CLPFD which uses https://github.com/triska/clpz for constraint logic programming. Rosette (https://docs.racket-lang.org/rosette-guide/index.html) is another solver-based language. Except it uses lisp syntax (it's embedded in the Racket language). It uses Z3 as a solver (linked above for SMT theories)
- Ask HN: Do you use an optimization solver? Which one? Why? Do you like it?
-
What is the difference between constraint solving and constraints programming?
Constraint programming I guess is when one uses a prolog library such as: https://github.com/triska/clpz
core.logic
-
A Tour of Lisps
It's also available in Clojure: https://github.com/clojure/core.logic
If you want to write one yourself, it's pretty easy: https://www.youtube.com/watch?v=y1bVJOAfhKY
- Logic programming is overrated, at least for logic puzzles (2013)
-
Common Lisp language extensions wish list?
Something like Clojure's core.logic would be pretty nice too. As I understand it, this is one of those features that has been re-invented time and again in the Lisp world over the years. Although the CL standard is already fairly large, it would probably be a bit controversial to make that a required part of a CL implementation. Still, it would be cool to have the option of using dependent types in the macro system to generate formerly verified Lisp code at compile time.
- Kotlin + Prolog
-
Need help choosing my first Lisp
It also has core.logic which is minikanren. There are other logic programming options as well. Some libraries like core.typed use core.logic for the type checker.
- A Core.logic Primer
-
The birth of Prolog (1992) [pdf]
You could study core.logic: https://github.com/clojure/core.logic/tree/master/src/main/c...
I swear I'd bookmarked a resource that was more analogous to #2, but you may want to have a look at The Little Prover: https://mitpress.mit.edu/books/little-prover
-
Why Learn Prolog in 2021?
related:
https://github.com/clojure/core.logic/wiki/A-Core.logic-Prim...
What are some alternatives?
prolog-checkers - A Player vs AI game of checkers implemented in Prolog
awesome-prolog - Curated list of Prolog packages and resources
HiGHS - Linear optimization software
clojure-graph-resources - A curated list of Clojure resources for dealing with graph-like data.
SSI - A Prolog Compiler written in Prolog.
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
kanren - An extensible, lightweight relational/logic programming DSL written in pure Python
pyswip - PySwip is a Python - SWI-Prolog bridge enabling to query SWI-Prolog in your Python programs. It features an (incomplete) SWI-Prolog foreign language interface, a utility class that makes it easy querying with Prolog and also a Pythonic interface.
or-tools - Google's Operations Research tools:
hatlog - custom type systems for python in prolog: http://alehander42.me/prolog_type_systems
csips - A pure-python integer programming solver
mercury - The Mercury logic programming system.