Most graphics applications are highly interactive and event-driven. These applications must con- tinuously interact and respond to events firing from the outside environment, such as mouse and keyboard events, while also updating their internal state in response to these events. As an appli- cation grows in complexity, the process of handling these external events and maintaining a valid application state becomes more challenging. Functional Reactive Programming (FRP) is another approach to programming interactive appli- cations. FRP languages define abstractions, called signals, to express time-varying values. Signals can either be continuous (always changing) or discrete (changing at specific points in time). These abstractions allow for modeling external events or internal changes in a more direct and declarative way by making their behavior more explicit. The FRP system automatically manages dependen- cies between signals, which allows programmers to express their logic at a higher-level instead of dealing with the low-level implementation details of mutable state and callbacks that are required in the event-driven paradigm. In this dissertation, we continue to advance the abstractions provided by prior FRP languages by presenting a new language called Tesel, which provides a new abstraction (i.e., signal groups) for distinctly propagating discrete and continuous signal changes efficiently through the program. This dissertation presents a detailed description of the language and its implementation, a formal operational semantics and the implementations for the Tesel compiler and runtime system. We also show how Tesel can be used to write practical and efficient graphics applications.