Algorithms a functional programming approach - Rabhi, Fethi (Addison-Wesley, 1999)