Spokes.wiki Search About
BookSoftware Source Code source ↗ source url updated Wed Aug 05 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

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.

prolog · logic-programming · programming-language · design-patterns · synthesis