The mechanism of Landin-style stream input/output (I/O) makes it possi
ble to write functional programs, which behave as reactive systems whe
n executed with lazy evaluation. Functional programming languages like
Gofer are attractive for programming the data transformations of a re
active system. But although the I/O behaviour can be programmed in suc
h languages too, the functional paradigm lacks the capabilities for sp
ecification and reasoning which are needed to analyse the communicatio
n behaviour of the program and its environment. We propose to use the
Algebra of Communicating Processes (ACP(epsilon)(tau)) for that purpos
e. The present paper attempts to bridge the gap between the functional
and the process-oriented worlds. The term rewriting system of the fun
ctional language, the operational semantics of the I/O mechanism and t
he process equations of a program are described and their relationship
s are analysed, We abstract from the details of the particular program
ming language by using an intermediate concept of 'abstract functional
program'.