Prolog Coding Horror
Summary
Explains the dangers of impure and low-level Prolog constructs, using the 'horror factorial' example to demonstrate how easy it is to lose solutions or produce incorrect results. It advocates staying within a pure, declarative subset (via CLP(FD) and DCG) for more general, testable logic programs and notes that printing results directly undermines reasoning and testing.