Skip to main content

How to Design Co−Programs

Jeremy Gibbons

Abstract

The observation that program structure follows data structure is a key lesson in introductory programming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook "How to Design Programs" by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recursive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs.

Journal
Journal of Functional Programming
Number
e15
Volume
31
Year
2021
Video from ICFP 2021
Video from Haskell.Love 2020