code: def this_and_prev(iterable):
      
      try:
          item = next(iterable)
          while True:
              next_item = next(iterable)
              yield item, next_item
              item = next_item
      except StopIteration:
          return
docs: Walk an iterable, returning the current and previous items
      as a two-tuple.