This book provides a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. It is intended to be a source of practical laboratory work material and to help students to develop, modify and experiment with their own implementations. The emphasis lies on the building of working prototypes of several functional language implementations and in each case the approach is to give a complete working...