The mechanism of Landin-style stream input/output (I/O) makes it possible to write functional programs, which behave as reactive systems when executed with lazy evaluation. Functional programming languages like Gofer are attractive for programming the data transformations of a reactive system. But although the I/O behaviour can be programmed in such languages too, the functional paradigm lacks the capabilities for specification and reasoning which are needed to analyse the communication behaviour of the program and its environment. We propose to use the Algebra of Communicating Processes (ACPet) for that purpose. The present paper attempts to bridge the gap between the functional and the process-oriented worlds. The term rewriting system of the functional language, the operational semantics of the I/O mechanism and the process equations of a program are described and their relationships are analysed. We abstract from the details of the particular programming language by using an intermediate concept of ‘abstract functional program’.