The Power of Prolog
Markus Triska’s book on modern Prolog — chapters plus video tours, readable at metalevel.at/prolog or served locally from Scryer Prolog, with the repository at 1.4k★ / 89 forks / 405 commits. In use in university courses across at least nine countries as of 2026.
It is not a neutral tutorial. The argument runs through the whole thing: write pure, declarative
Prolog, accept “stringent constraints” in exchange for “strong logical properties,” and reach for modern
constructs — dif/2, declarative integer arithmetic, constraint solving over finite domains — instead of
the imperative shortcuts older textbooks teach. It closes on “Restez purs!”
T2 — a single-author book with a stated position, widely adopted as course material and not peer-reviewed. Its claims about Prolog are demonstrable from the code it shows; its claim about how one should program is an argument.
The disagreement it is having
prolog‘s own recorded weakness is that the declarative reading breaks down in practice: cuts get added for performance, clause order matters, bidirectionality is lost. Triska’s answer is that this is a consequence of how Prolog has been taught, not of the language — that the constructs which preserve logical purity exist and the older canon predates or ignores them.
That makes this the corpus’s first normative source. Every other page here describes what a language is; this one argues about what its users should do with it, against a named opposing practice. The claim is testable in principle — pure programs that stay fast enough would settle it — and neither source here tests it.
Cross-spoke note. As a teaching artifact adopted by universities it also sits in
../engineering-education-wiki’s subject area (curricula as objects of study). Routed here because its
substance is an argument about the language rather than a curriculum design, with the pedagogy angle
noted rather than developed.
Related
prolog · logic-programming · programming-language · design-patterns · synthesis