Challenge 2: An Inline ; Disjunction Rule — Possible Solution ==================================================================== drink.pl: drink(mary, X) :- X = wine ; X = beer. Query: ?- drink(mary, X). X = wine ; X = beer. Explanation: drink(mary, X)'s body is a single disjunction: X = wine ; X = beer. Prolog tries the LEFT alternative of the ; first, succeeding by unifying X with wine and reporting that as the first answer. Pressing ; asks for the next alternative, which backtracks into the disjunction and tries the RIGHT side instead, unifying X with beer. This is the exact same ; mechanism used for the top-level's own "next answer" prompt -- here it's just written explicitly inside a rule body rather than being triggered implicitly by multiple matching clauses. WHY THIS WORKS AS AN ANSWER ------------------------------ This writes a genuine inline ; disjunction exactly as the chapter introduces it, and retrieves both alternatives, confirming rule-body ; behaves identically to the top-level's own "next answer" mechanism.