Functional-Programming Course teaching how to program in Haskell and Prolog. A Java program is created to understand the problem better