3 ms·
Prolog-style logic programming is very different from SAT, SMT and Answer Set Programming in this regard. Prolog has the same features that you describe in Lisp
by felixyz 6y ago
Prolog-style logic programming is very different from SAT, SMT and Answer Set Programming in this regard. Prolog has the same features that you describe in Lisp. It's homoiconic, infinitely malleable, meta-level programming is trivial, etc. I recommend having a look at:
https://www.metalevel.at/acomip/ https://www.metalevel.at/acomip/ (A Couple of Meta-interpreters in Prolog)
and
https://github.com/triska/lisprolog https://github.com/triska/lisprolog
- thelazydogsback 6y agoUnderstanding the declarative vs. operational semantics of Prolog (and how things like tabling can bridge the gap in some cases) is one of the most important concepts to master. It's really a shame that that more Prologs don't support alternate operational models -- though it's pretty trivial to write meta-interpreters with your own semantics (such as breadth-first eval, etc.) it would be nice if there were canonical versions. For CLP & attributed-variables at least there is some universality.