code: public static <T> String join(Collection<T> x, String separator) {
          StringBuilder result = new StringBuilder();
          for (Iterator<T> it = x.iterator(); it.hasNext();) {
              T item = it.next();
              if (item instanceof Number) {
                  result.append(Op.str((Number) item));
              } else {
                  result.append(item.toString());
              }
              if (it.hasNext()) {
                  result.append(separator);
              }
          }
          return result.toString();
      }
docs: Joins an array of elements by the given separator into a single string. The
  elements are represented as strings utilizing the Op.str() method on each
  element
  
  @tparam T determines the class type of the value
  @param x is the array of elements
  @param separator is the string to add between the elements
  @return a single string joining the array of elements by the given
  separator