Functional and Constraint Logic Programming