Robert Kuhar robertkuhar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org [seajug]
2014-05-15 04:00:29 UTC
While very informative, the Coursera "Introduction to Cryptography" by Dan
Boneh turned out to be a really difficult topic to build a WingDing agenda
around. We've decided to abandon the iteration and pick something short,
sweet, and a little closer to home.
Beginning Tuesday May 25 we will begin our coverage of Venkat Subramaniam's
"Functional Programming in Java: Harnessing the Power of Java 8 Lambda
Expressions" http://pragprog.com/book/vsjava8/functional-programming-in-java.
This book is a brief 9 Chapters in 160 pages. If you order it through
Pragmatic Programmer's, the following discount code worked for me:
VenkatJava8
On Tuesday, May 25 we will cover Chapters 1 and 2 and set the agenda for
the rest of the iteration. Bob will moderate.
Chapter 1: Hello, Lambda Expressions! (17 pages). We discuss the
functional style of programming, its benefits, and how it differs from the
prevalent imperative style. We also look into how Java supports lambda
expressions in this chapter.
Chapter 2: Using Collections (21 pages). The JDK collections have
received some special treatment in Java 8, with new interfaces, classes,
and methods that support functional-style operations. This chapter
explores how to work with collections in Java 8.
As always, we are looking for Moderators for Chapters 3 through 9. See
something of interest to you? Give moderation a try. Its easy. One
moderator per chapter would be ideal and I'm thinking we may be able to
cover 2 chapters per meeting (they are all about 20 pages long). Its
WingDings, though. We're flexible.
1. Hello, Lambda Expressions!.............................. 1
Change the Way You Think 1
The Big Gains of Functional-Style Code 5
Why Code in the Functional Style? 6
Evolution, Not Revolution 12
A Little Sugar to Sweeten 15
Recap 17
2. Using Collections....................................... 19
Iterating through a List 19
Transforming a List 23
Finding Elements 26
Reusing Lambda Expressions 27
Using Lexical Scoping and Closures 29
Picking an Element 33
Reducing a Collection to a Single Value 35
Joining Elements 38
Recap 40
3. Strings, Comparators, and Filters....................... 41
Iterating a String 41
Implementing the Comparator Interface 44
Multiple and Fluent Comparisons 51
Using the collect Method and the Collectors Class 53
Listing All Files in a Directory 56
Listing Select Files in a Directory 57
Listing Immediate Subdirectories Using flatMap 59
Watching a File Change 60
Recap 62
4. Designing with Lambda Expressions....................... 63
Separating Concerns Using Lambda Expressions 63
Delegating Using Lambda Expressions 68
Decorating Using Lambda Expressions 72
A Peek into the default Methods 77
Creating Fluent Interfaces Using Lambda Expressions 80
Dealing with Exceptions 83
Recap 86
5. Working with Resources................................. 87
Cleaning Up Resources 87
Using Lambda Expressions to Clean Up Resources 91
Managing Locks 95
Creating Concise Exception Tests 97
Recap 101
6. Being Lazy.............................................. 103
Delayed Initialization 103
Lazy Evaluations 108
Leveraging the Laziness of Streams 111
Creating Infinite, Lazy Collections 115
Recap 119
7. Optimizing Recursions................................... 121
Using Tail-Call Optimization 121
Speeding Up with Memoization 129
Recap 134
8. Composing with Lambda Expressions....................... 135
Using Function Composition 135
Using MapReduce 138
Taking a Leap to Parallelize 143
Recap 145
9. Bringing It All Together................................ 147
Essential Practices to Succeed with the Functional Style 147
Performance Concerns 151
Adopting the Functional Style 153
Boneh turned out to be a really difficult topic to build a WingDing agenda
around. We've decided to abandon the iteration and pick something short,
sweet, and a little closer to home.
Beginning Tuesday May 25 we will begin our coverage of Venkat Subramaniam's
"Functional Programming in Java: Harnessing the Power of Java 8 Lambda
Expressions" http://pragprog.com/book/vsjava8/functional-programming-in-java.
This book is a brief 9 Chapters in 160 pages. If you order it through
Pragmatic Programmer's, the following discount code worked for me:
VenkatJava8
On Tuesday, May 25 we will cover Chapters 1 and 2 and set the agenda for
the rest of the iteration. Bob will moderate.
Chapter 1: Hello, Lambda Expressions! (17 pages). We discuss the
functional style of programming, its benefits, and how it differs from the
prevalent imperative style. We also look into how Java supports lambda
expressions in this chapter.
Chapter 2: Using Collections (21 pages). The JDK collections have
received some special treatment in Java 8, with new interfaces, classes,
and methods that support functional-style operations. This chapter
explores how to work with collections in Java 8.
As always, we are looking for Moderators for Chapters 3 through 9. See
something of interest to you? Give moderation a try. Its easy. One
moderator per chapter would be ideal and I'm thinking we may be able to
cover 2 chapters per meeting (they are all about 20 pages long). Its
WingDings, though. We're flexible.
1. Hello, Lambda Expressions!.............................. 1
Change the Way You Think 1
The Big Gains of Functional-Style Code 5
Why Code in the Functional Style? 6
Evolution, Not Revolution 12
A Little Sugar to Sweeten 15
Recap 17
2. Using Collections....................................... 19
Iterating through a List 19
Transforming a List 23
Finding Elements 26
Reusing Lambda Expressions 27
Using Lexical Scoping and Closures 29
Picking an Element 33
Reducing a Collection to a Single Value 35
Joining Elements 38
Recap 40
3. Strings, Comparators, and Filters....................... 41
Iterating a String 41
Implementing the Comparator Interface 44
Multiple and Fluent Comparisons 51
Using the collect Method and the Collectors Class 53
Listing All Files in a Directory 56
Listing Select Files in a Directory 57
Listing Immediate Subdirectories Using flatMap 59
Watching a File Change 60
Recap 62
4. Designing with Lambda Expressions....................... 63
Separating Concerns Using Lambda Expressions 63
Delegating Using Lambda Expressions 68
Decorating Using Lambda Expressions 72
A Peek into the default Methods 77
Creating Fluent Interfaces Using Lambda Expressions 80
Dealing with Exceptions 83
Recap 86
5. Working with Resources................................. 87
Cleaning Up Resources 87
Using Lambda Expressions to Clean Up Resources 91
Managing Locks 95
Creating Concise Exception Tests 97
Recap 101
6. Being Lazy.............................................. 103
Delayed Initialization 103
Lazy Evaluations 108
Leveraging the Laziness of Streams 111
Creating Infinite, Lazy Collections 115
Recap 119
7. Optimizing Recursions................................... 121
Using Tail-Call Optimization 121
Speeding Up with Memoization 129
Recap 134
8. Composing with Lambda Expressions....................... 135
Using Function Composition 135
Using MapReduce 138
Taking a Leap to Parallelize 143
Recap 145
9. Bringing It All Together................................ 147
Essential Practices to Succeed with the Functional Style 147
Performance Concerns 151
Adopting the Functional Style 153