(no title)
sproutini | 1 year ago
That narrows down the already small niche where one would choose Prolog by probably a few orders.
sproutini | 1 year ago
That narrows down the already small niche where one would choose Prolog by probably a few orders.
tpoacher|1 year ago
In my opinion, this does not imply that proper lisp (and correspondingly prolog) implementations are useless, just because a simple implementation can be written in a different, "more expressive" language.
jhbadger|1 year ago
https://en.wikipedia.org/wiki/MiniKanren
There's a great book in the same series as the "Little Lisper"/"Little Schemer" books called "The Reasoned Schemer" that uses MiniKanren with Scheme.
sproutini|1 year ago
YeGoblynQueenne|1 year ago
I don't think I've ever seen a discussion of Resolution in functional programming textbook implementations of "Prolog". They typically just bodge some depth-first search with backtracking and unification in polish notation and call it "Prolog", or "logic programming". A bit like if I wrote a "lisp" with eval(X):- call(X), then completely ignored all that jazz about lambda calculus and concentrated on garbage collection and linked lists.
A good starting point instead, if one wishes to understand Prolog and not just dismiss it out of hand, is to try and understand Resolution, and what unification does for Resolution, and why it ended up in Prolog (and how) in the first place. I'd start, well, at the beginning:
A Machine-Oriented Logic Based on the Resolution Principle
https://www.semanticscholar.org/paper/A-Machine-Oriented-Log...
Where you can follow the progress from ground Resolution, to unification, the Resolution theorem, and all the way to the (pre-modern) Subsumption Theorem. It's a long way to Prolog from there, but that's where it all begins.
_______________
[1] Although Prolog implemented by DFS is not complete if Prolog implemented by DFS is not complete (etc).
btbuildem|1 year ago
For many, how the language faces the user, how its paradigms fit the problems at hand and the user's mode of seeing the world, that is more important.
These days, with the terabytes the petaflops and the megajoules, it might be even less relevant how the gears are turning inside the black box.
kazinator|1 year ago
I don't think that performs like a proper Prolog engine on larger problem.
Real Prologs work by compiling to something called the WAM (Warren Abstract Machine).
z5h|1 year ago