code: def amap(source, corofn, *more_sources, ordered=True, task_limit=None):
      
  
      def func(*args):
          return create.just(corofn(*args))
  
      if ordered:
          return advanced.concatmap.raw(
              source, func, *more_sources, task_limit=task_limit)
      return advanced.flatmap.raw(
          source, func, *more_sources, task_limit=task_limit)
docs: Apply a given coroutine function to the elements of one or several
      asynchronous sequences.
  
      Each element is used as a positional argument, using the same order as
      their respective sources. The generation continues until the shortest
      sequence is exhausted.
  
      The results can either be returned in or out of order, depending on
      the corresponding ``ordered`` argument.
  
      The coroutines run concurrently but their amount can be limited using
      the ``task_limit`` argument. A value of ``1`` will cause the coroutines
      to run sequentially.
  
      If more than one sequence is provided, they're also awaited concurrently,
      so that their waiting times don't add up.