Learn how to use RxClojure to deal with stateful computations Key Features Leverage the features of Functional Reactive Programming using Clojure Create dataflow-based systems that are the building blocks of Reactive Programming Use different Functional Reactive Programming frameworks, techniques, and patterns to solve real-world problems Book Description Reactive Programming is central to many concurrent systems, and can help make the process of developing highly concurrent, event-driven, and asynchronous applications simpler and less error-prone. This book will allow you to explore Reactive Programming in Clojure 1.9 and help you get to grips with some of its new features such as transducers, reader conditionals, additional string functions, direct linking, and socket servers. Hands-On Reactive Programming with Clojure starts by introducing you to Functional Reactive Programming (FRP) and its formulations, as well as showing you how it inspired Compositional Event Systems (CES). It then guides you in understanding Reactive Programming as well as learning how to develop your ability to work with time-varying values thanks to examples of reactive applications implemented in different frameworks. You'll also gain insight into some interesting Reactive design patterns such as the simple component, circuit breaker, request-response, and multiple-master replication. Finally, the book introduces microservices-based architecture in Clojure and closes with examples of unit testing frameworks. By the end of the book, you will have gained all the knowledge you need to create applications using different Reactive Programming approaches. What you will learn Understand how to think in terms of time-varying values and event streams Create, compose, and transform observable sequences using Reactive extensions Build a CES framework from scratch using core.async as its foundation Develop a simple ClojureScript game using Reagi Integrate Om and RxJS in a web application Implement a reactive API in Amazon Web Services (AWS) Discover helpful approaches to backpressure and error handling Get to grips with futures and their applications Who this book is for If you’re interested in using Reactive Programming to build asynchronous and concurrent applications, this is the book for you. Basic knowledge of Clojure programming is necessary to understand the concepts covered in this book.
If you are a Clojure developer who is interested in using Reactive Programming to build asynchronous and concurrent applications, this book is for you. Knowledge of Clojure and Leiningen is required. Basic understanding of ClojureScript will be helpful for the web chapters, although it is not strictly necessary.
Whether you are a Java expert or at a beginner level, you'll benefit from this book, because it will teach you a brand new way of coding and thinking. The book starts with an explanation of what reactive programming is, why it is so appealing, and how we can integrate it in to Java. It continues by introducing the new Java 8 syntax features, such as lambdas and function references, and some functional programming basics. From this point on, the book focuses on RxJava in depth. It goes through creating Observables, transforming, filtering, and combining them, and concurrency and testing to finish with extending the library itself. This book is a definite tutorial in RxJava filled with a lot of well-described examples. It explains reactive programming concepts in plain and readable language, without scientific formulas and terms.
Leverage the power and flexibility of the Clojure language for finance About This Book Apply the Clojure programming language in financial analytics and to build financial applications Work with high-level mathematical abstractions without having to implement low-level code for financial operations. This is a practical tutorial that takes you through real-world examples of financial analytics and applications with Clojure Who This Book Is For If you're a finance professional who is currently using VBA (Excel) to perform financial calculations and quantitative analysis, and would like to use Clojure instead to improve their efficiency, then this book is for you. Basic knowledge of financial concepts is essential. Basic programming knowledge would also be an added advantage. What You Will Learn Quickly and effectively represent data and calculations using Clojure Use Clojure's basic language tools such as laziness, immutability, and firstclass functions to solve real-world problems Explore mathematical derivatives to generate different wave forms Get acquainted with the advanced approaches to calculating and transforming data, and building algorithms Use Clojure's functions to access, update, and compose data structures Be introduced to the concept of sideeffecting behavior and the different ways to handle it Compose simple and exponential functions together to get a buy or sell signal In Detail Clojure is a dynamic programming language with an emphasis on functional programming. Clojure is well suited to financial modeling as it is a functional programming language. Such languages help developers work with high-level mathematical abstractions without having to implement low-level code that handles the arithmetic operations. Starting with the importance of representing data and calculations effectively, this book will take you all the way to being competent in financial analytics and building financial applications. First, we introduce the notions of computation and finance, which will help you understand Clojure's utility to solve real-world problems in many domains, especially finance. Next, we will show you how to develop the simple-moving-average function by using the more advanced partition Clojure data transformation function. This function, along with others, will be used to calculate and manipulate data. You will then learn to implement slightly more complicated equations, how to traverse data, and deal with branching and conditional dispatch. Then, the concept of side-effecting and its various approaches are introduced, along with the strategy of how to use data as the interface to other systems. Finally, you will discover how to build algorithms while manipulating and composing functions. Style and approach This book is a practical step-by-step tutorial that provides a basic overview of the concepts but focuses on providing the skills required to analyze data.