Run mapper over passed in files, returning a list of results.

def _map_over_linters(self,
                          py_files,
                          non_test_files,
                          md_files,
                          stamp_directory,
                          mapper):
        """Run mapper over passed in files, returning a list of results."""
        dispatch = [
            ("flake8", lambda: mapper(_run_flake8,
                                      py_files,
                                      stamp_directory,
                                      self.show_lint_files)),
            ("pyroma", lambda: [_stamped_deps(stamp_directory,
                                              _run_pyroma,
                                              "setup.py",
                                              self.show_lint_files)]),
            ("mdl", lambda: [_run_markdownlint(md_files,
                                               self.show_lint_files)]),
            ("polysquare-generic-file-linter", lambda: [
                _run_polysquare_style_linter(py_files,
                                             self.cache_directory,
                                             self.show_lint_files)
            ]),
            ("spellcheck-linter", lambda: [
                _run_spellcheck_linter(md_files,
                                       self.cache_directory,
                                       self.show_lint_files)
            ])
        ]

        # Prospector checks get handled on a case sub-linter by sub-linter
        # basis internally, so always run the mapper over prospector.
        #
        # vulture should be added again once issue 180 is fixed.
        prospector = (mapper(_run_prospector,
                             py_files,
                             stamp_directory,
                             self.disable_linters,
                             self.show_lint_files) +
                      [_stamped_deps(stamp_directory,
                                     _run_prospector_on,
                                     non_test_files,
                                     ["dodgy"],
                                     self.disable_linters,
                                     self.show_lint_files)])

        for ret in prospector:
            yield ret

        for linter, action in dispatch:
            if linter not in self.disable_linters:
                try:
                    for ret in action():
                        yield ret
                except Exception as error:
                    traceback.print_exc()
                    sys.stderr.write("""Encountered error '{}' whilst """
                                     """running {}""".format(str(error),
                                                             linter))
                    raise error