Hi Albareto,
The book is aimed at people with an average knowledge of Java and no knowledge of functional programming. It is not a book about Java 8, although it makes a heavy use of lambdas. But the reader is not supposed to know lambdas. "Functional" constructs of Java 8, such as
Optional,
Stream and
CompletableFuture are not fully described. In the book, we build a functional library with our own types, implemented in a functional way (which is not at all the case of Java 8 types). The goal is not to give recipes that can be blindly applied to Java 8 programs, but to understand what functional programming means. Not everything in the book will apply to you day to day programming. It will be up to you to chose the parts you want to apply. Everything is presented in the form of exercises you have to solve to pass
unit tests. Some exercises might be difficult at first, but none require previous knowledge of functional programming.