Intermediate data structures (lists, trees), higher-order functions and lazy evaluation form a "Swiss knife" for functional programming. They allow to combine different program components in elegant and concise way. Nevertheless, they also can be a reason for inefficiency. Deforestation is a program transformation technique aimed at elimination of intermediate data structures, thus improving its efficiency. We describe both the basic algorithm for deforestation and its improved version, which (unlike the former one) is capable of dealing with higher-order functions; we also discuss their properties and limitations.
28.10.2019, 17:15.Venue: room 3248, Faculty of Mathematics and Mechanics, Saint Petersburg
State University, Stary Peterhof, Universitetski pr., 28