Function + Action = Interaction
  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. 
Ichiroh Kanaya, Mayuko Kanazawa, Masataka Imura
cs.HC