static S rjoin(S glue default "", Iterable strings) {
if (strings == null) ret "";
if (strings cast Collection) {
if (strings.size() == 1) ret str(first(strings));
}
new StringBuilder buf;
Iterator i = reversed(strings).iterator();
if (i.hasNext()) {
buf.append(i.next());
while (i.hasNext())
buf.append(glue).append(i.next());
}
ret buf.toString();
}
sS rjoin(S glue, S... strings) {
ret join(glue, asVirtualReversedList(strings));
}
static S rjoin(Iterable strings, S glue) {
ret rjoin(glue, strings);
}
sS rjoin(S[] strings) {
ret rjoin("", strings);
}