*D-finite functions* is a comprehensive introduction to computations with functions, particularly the use of D-finite functions, in the design of algorithms targeting proof of presence/lack of relation(s), algorithms dedicated to resolving asymptotic behavior, and algorithms designed to find the closed form of an expression. The book focuses on a class of functions denoted as D-finite functions, where D stands for “differentially.” The book’s five chapters provide an overview of the main concepts and discuss D-finite sequences on a single variable for recurrent and differential cases, operators, and operations (summation and integration).

The book is designed as a textbook but targets active learning, thus each chapter includes examples and exercises as well as several reference sections. Each “reference” follows the subsection and includes additional details and references to literature and original works, which interested readers can use to expand their knowledge of the particular topic or gain perspective. For instance, a reference in Section 2.6 presents the pioneering algorithm for finding rational solutions (Abramov) but expands the discussion with newer algorithms for finding rational solutions that use intermediate coefficients.

Another strength of the book is its flexibility. For instance, the author designed the introductory chapter 1 to serve two goals: first to be rigorous enough, and second to be challenging enough for the reader. Thus the chapter presents key formal definitions and needed theorems with formal proofs, but also includes instructions and points to further reading. Each key concept is also illustrated with a proper example. This comprehensive approach is beneficial, as it allows the student to evaluate his/her own knowledge, promotes self-study, properly sets the stage for learning, and allows the teacher to design the course for different levels.

In a similar manner, the author decided to separate the topic of linear recurrence equations with polynomial coefficients from differential equations with polynomial coefficients, despite their similarities. Thus, chapters 2 and 3 cover these two cases separately. This approach allows the reader to highlight the parallels in each, and it is also helpful for instructors designing a course that uses the book as a textbook.

Chapter 4 is dedicated to developing general theory that includes both differential equations and recurrence equations using Ore algebra. The final chapter 5 deals with summation and integration, including hyperexponential integration and hypergeometric summation based on homomorphic images.

The book is written in a precise style with attention to detail. The provided algorithms are in symbolic code, but can be easily (relatively) translated to programs. The exercises are well designed and informative. The book is an excellent source of information and will work best for graduate-level math education, though it may also motivate researchers to apply the theory in their own fields.