This dissertation examines the behaviour of McCarthy's amb in both a call-by-name and call-by-need context. Instead of following the usual denotational approach, we choose to explore the operational alternative. The languages involved are higher-order, and contain algebraic datatypes. For both call-by-name and call-by-need we follow a simple programme:<p /> 1. Develop a number of equivalent operational semantics; one that is "obviously correct", and others that are more abstract and better suited to reasoning.<p /> 2. Define notions of cost relative to the abstract operational semantics, and use the cost-decorated operational relations to define approximation and equivalence.<p /> 3. Develop an operational theory for the approximation an...