EQUATIONAL PROGRAMMING: A UNIFYING APPROACH TO FUNCTIONAL AND LOGIC PROGRAMMING.