AverageSalary *report = salaryRecords.filter ([] (Salary &record) {
                                                                    ...
                                                                  })
                                     .map ([] (Salary &record) {
                                                                 ...
                                                               }, [] (Salary WR &record) {
                                                                                           ...
                                                                                         })
                                     .reduce ([] (AverageSalary WR &report, Salary &record) {
                                                                                              ...
                                                                                            });
