Programmer Passport: Prolog (Pragmatic Bookshelf)

PragmaticBookshelf
Discover the secret Prolog developers have long known. Programs based on pure logic as the primary building block are more elegant, more powerful, and more useful than programs written with general purpose languages.

Bruce Tate @redrapids

edited by Jacquelyn Carter @jkcarter

Constraint-based logic programming is the engine powering some of the most powerful algorithms in the world. Whether you’re building an airline schedule or planning routes for a trucking company, Prolog has the tools you need. You don’t have to struggle through thousands of pages of sample programs. This guide to Prolog will quickly ramp you up on the basic Prolog techniques you’ll need to solve the representative logical problems that Prolog is famous for.

Instead of working through dozens of fragmented code snippets written for different dialogs of Prolog, you can learn Prolog from a unified guide. You will start with the basics, defining the facts and inferences your programs will need to function. Then, you’ll learn the techniques to tie those facts together. You’ll finish off the basics by working through iconic problems like the map coloring problem. You’ll break into recursive solutions with the eight queens problem as you learn to explore logical problems requiring recursion and fixed dimensions.

Once you’ve picked up the basics, you’ll get right into the problem domains that made Prolog famous. You’ll navigate graphs to compute a working path, or even evaluate paths with the least distance or fastest times. You’ll not only learn what directed graphs are, but when to apply them. You’ll also get to use Prolog to solve scheduling problems. The basic algorithm will give you the tools to schedule a sports league tournament with special constraints.

Don’t settle for fragments of the big picture. Demand a consolidated approach that guides you through the process from beginning to end. Whether you’re learning logic programming to open up career possibilities or to excel in a class, you need this book.


Bruce A. Tate is a programmer and CEO of Groxio where he is helping to redefine how computer languages are taught and learned. He’s the author of Seven Languages in Seven Weeks and Programming Phoenix LiveView, among other titles, and has been involved with Elixir from the very beginning.


Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

Latest Threads About This Book Top

ulrivo
@redrapids Wrong definition of rule: use max instead of min in aggregate: maximum_path(From, To, Path, Weight) :- aggregate(min(W, P),...
New
jeremyhuiskamp
In this code: apply_constraints(MatchA, MatchB, PotentialMatches, RemainingMatches, Day) :- different_teams(MatchA, MatchB), can...
New
ggramlich
The whole section confused me. First, you can use the ins/2 function to assert that variables are in a range. We’ll use it like this: ...
New
jeremyhuiskamp
The definition of maximum_path is shown as identical to that of minimum_path. It looks like both uses of min should be replaced with max.
New
KengoTODA
At the end of page 45, there is a code snippet as follows: path_with_length(a, f, [Path, Length]). but this code brings Prolog into an ...
New
KengoTODA
Thanks for shipping a really great book, it’s really helpful to learn about Prolog and Logic Programming Basics. I also visited the Exerc...
New
PragmaticBookshelf
Discover the secret Prolog developers have long known. Programs based on pure logic as the primary building block are more elegant, more ...
New

Most Active This Week Top

Most Active This Month Top

Most Active This Year Top

Most Active Last Three Years Top

jeremyhuiskamp
In this code: apply_constraints(MatchA, MatchB, PotentialMatches, RemainingMatches, Day) :- different_teams(MatchA, MatchB), can...
New
ggramlich
The whole section confused me. First, you can use the ins/2 function to assert that variables are in a range. We’ll use it like this: ...
New
ulrivo
@redrapids Wrong definition of rule: use max instead of min in aggregate: maximum_path(From, To, Path, Weight) :- aggregate(min(W, P),...
New

Most Active Over Three Years Top

PragmaticBookshelf
Discover the secret Prolog developers have long known. Programs based on pure logic as the primary building block are more elegant, more ...
New
KengoTODA
At the end of page 45, there is a code snippet as follows: path_with_length(a, f, [Path, Length]). but this code brings Prolog into an ...
New
KengoTODA
Thanks for shipping a really great book, it’s really helpful to learn about Prolog and Logic Programming Basics. I also visited the Exerc...
New
jeremyhuiskamp
The definition of maximum_path is shown as identical to that of minimum_path. It looks like both uses of min should be replaced with max.
New

Get money off!

The Pragmatic Bookshelf

35% off any eBook

Simply use coupon code "devtalk.com" at checkout. See full details here.