#Java, <s>127</s> 111 bytes (s,r)->{StringBuilder b = new StringBuilder(s).reverse();for(int i=0;i++<s.length();)r+=b.reverse();return r;}; #Ungolfed test program public static void main(String[] args) { BiFunction<String, String, String> func = (s, r) -> { StringBuilder b = new StringBuilder(s).reverse(); for (int i = 0; i++ < s.length();) { r += b.reverse(); } return r; }; System.out.println(func.apply("Hello!", "")); }