A backtracking computation forks into two threads The first thread continues running The second thread is suspended, and only starts when the first thread (and all threads that it forks) fail See E17
Searching process used by Prolog If a predicate offers multiple clauses to solve a goal, they are tried one-by-one until one succeeds If a subsequent part of the prove is not satisfied with the resulting variable binding, it may ask for an alternative solution (= binding of the variables), causing Prolog to reject the previously chosen clause and try the next one
The practice of saying, "If I had to do it all over, I'd do it differently," and then actually going back and doing it all over differently Mathematically speaking, it's returning from an unsuccessful recursion on a tree of possibilities Backtracking happens in Perl when it attempts to match patterns with a regular expression, and its earlier guesses don't pan out
In order to make parse tables more compact and parsers faster, it is common to use default reductions In case of error, it is necessary to undo default reductions before diagnostics can be properly determined In AnaGram, this undo operation is called backtracking