  This article presents the mathematical background of general interactive
systems. The first principle of designing a large system is to _divide and
conquer_, which implies that we could possibly reduce human error if we divided
a large system in smaller subsystems. Interactive systems are, however, often
composed of many subsystems that are _organically_ connected to one another and
thus difficult to divide. In other words, we cannot apply a framework of set
theory to the programming of interactive systems. We can overcome this
difficulty by applying a framework of category theory (Kleisli category) to the
programming, but this requires highly abstract mathematics, which is not very
popular. In this article we introduce the fundamental idea of category theory
using only lambda calculus, and then demonstrate how it can be used in the
practical design of an interactive system. Finally, we mention how this
discussion relates to category theory.
