This document provides an overview of functional reactive programming (FRP). It begins by discussing programming paradigms like imperative and declarative programming. FRP is then introduced as a programming paradigm that combines functional programming and reactive programming. Functional programming treats computation as mathematical functions while reactive programming involves asynchronous data streams. The document explains core FRP concepts like streams and signals. It also introduces RxSwift, a library that brings FRP to iOS. Finally, examples are provided to demonstrate the advantages of using an FRP approach.