code: public static <T> Collection<T> tail(Iterable<T> self) {
          if (!self.iterator().hasNext()) {
              throw new NoSuchElementException("Cannot access tail() for an empty iterable");
          }
          Collection<T> result = createSimilarCollection(self);
          addAll(result, tail(self.iterator()));
          return result;
      }
docs: Returns the items from the Iterable excluding the first item.
  <pre class="groovyTestCase">
  def list = [3, 4, 2]
  assert list.tail() == [4, 2]
  assert list == [3, 4, 2]
  </pre>
  
  @param self an Iterable
  @return a collection without its first element
  @throws NoSuchElementException if the iterable is empty and you try to access the tail()
  @since 2.4.0