Destroy All "If"s: An Intro to Declarative Programming in Prolog
presented by Michael Misamore, Sept 2018
The title is a respectful nod to the inspiring blog post by John A De Goes.
The exposition owes a lot to Markus Triska's guide The Power of Prolog. Several code ideas are reused from there, especially around CLP(FD).