RUM is an intensional semantic theory of function and control abstractions as computation primitives. It provides a variety of semantics in a single context and a mathematical foundation for understanding and improving current practice in symbolic (Lisp-style) computation. Properties of powerful programming tools such as functions as values, streams, object oriented programming, escape mechanisms, and co-routines can be represented naturally. In addition a wide variety of operations on programs can be treated including program transformations which introduce function and control abstractions, compiling morphisms that tranform control abstractions into function abstractions, and operations that transform intensional properties of programs into extensional properties. The theory goes beyond a theory of functions computed by programs, providing tools for treating both intensional and extensional properties of programs. This provides operations on programs with meanings to transform as well as meanings to preserve. Applications of RUM include expressing and proving properties of particular programs and of classes of programs; studying mathematical properties of computation mechanisms; the design and implementation of interactive computation systems; and mechanization of reasoning about computation. In this paper we briefly survey related ideas from work in symbolic computation and semantics and give a guided tour through RUM illustrating the main ideas.