def select(self, selector):
        '''Transforms each element of a sequence into a new form.

        Each element is transformed through a selector function to produce a
        value for each value in the source sequence. The generated sequence is
        lazily evaluated.

        Args:
            selector: A unary function mapping a value in the source sequence
                to the corresponding value in the generated generated sequence.
                The argument of the selector function (which can have any name)
                is,

                Args:
                    element: The value of the element

                Returns:
                    The selected value derived from the element value

        Returns:
            A generated sequence whose elements are the result of invoking the
            selector function on each element of the source sequence.
        '''
        return self._create(self._pool.imap_unordered(selector, iter(self),
                                                      self._chunksize))