Text this: Constraint logic programming using ECLiPSe / Krzysztof R. Apt and Mark Wallace.