Practical Aspects of Declarative Languages by S. Krishnamurthi & C.R. Ramakrishnan