This project is my studying notes that I wrote while learning functional programming in Java.
My notes about Java 8 new classes here. List of notes:
- Optional (RU)
Stepik.org course "Java. Functional programming"
Answers for hard exercises of the course are here.
Grouped by theory lessons:
- 1.2 Lambda expressions and method references;
- 1.3 Functions are objects;
- 1.4 Introduction to streams;
- 1.5 Learn more about map, reduce and forEach;
- 1.6 Collectors;
- 1.7 Parallel streams;
- 1.8 Returning functions and currying;
- 1.9 Monads and related things in Java 8.
Exercise answers from the book are here.
Grouped by chapters:
- Chapter 2. Lambdas;
- Chapter 3. Streams;
- Chapter 4. Libraries;
- Chapter 5. Collections and Collectors;
- Chapter 6. Data parallelism.
Chapters 1, 7-10 have no exercises.
Also there is tests for new Java 8 classes. List of tests:
Some standard java functional API improvements:
- ImprovedBooleanSupplier - standard BooleanSupplier with added logical functions (OR, AND, NEGATE).
Here is a list of additional materials to learn about Functional Programming in Java.
- Stepik.org - Java. Functional programming
- Richard Warburton - Java 8 Lambdas. Functional programming for the masses: En, Ru. GitHub
- Pierre-Yves Saumont - Functional programming in Java: En
English:
- null
Russian:
- Тагир Валеев - Stream API: рекомендации лучших собаководов (2016). YouTube
- Тагир Валеев - Странности Stream API (2016). YouTube
- Тагир Валеев - Причуды Stream API (2016). YouTube
- Сергей Куксенко - Stream API, часть 1. YouTube
- Сергей Куксенко - Stream API, часть 2. YouTube
- Андрей Родионов - От Java Threads к лямбдам (2014). Youtube
English:
- Java 8 tutorial. HowToDoInJava
- Java 8 Optional use-cases. DZone
- What's wrong in Java 8, Part I: Currying vs Closures. DZone. Перевод
- What's wrong in Java 8, Part II: Functions & Primitives. DZone. Перевод
- What's wrong in Java 8, Part III: Streams and Parallel Streams. DZone. Перевод
- What's wrong in Java 8, Part IV: Monads. DZone. Перевод
- What's wrong in Java 8, Part V: Tuples. DZone. Перевод
- What's wrong in Java 8, Part VI: Strictness. DZone. Перевод
- What's wrong in Java 8, Part VII: Streams again. DZone. Перевод
Also:
- Look at the full list of Pierre-Yves Saumont articles: DZone
- Look at the list of Tomasz Nurkiewicz articles (part of them is about Java 8): DZone
Russian:
- Полное руководство с анимированными операциями. Annimon
- Шпаргалка Java программиста. Java Stream API (2015). Хабр
- Stream API: универсальная промежуточная операция (2016). Хабр
- Используйте Stream API проще (или не используйте вообще) (2017) Хабр
- Vavr - More functional programming features for Java
- StreamEx - additional useful methods for Java Stream API.
Additional libraries used in this project: