Combining Functional and Logic Programming Languages