# [SimpleTemplate][1], 23 bytes This answer is for a language I wrote, which was supposed to be for templates but hasn't seen many updates. This is the basic "split, loop, output twice", but without the splitting. {@eachargv.0}{@echo_,_} And now, ungolfed: {@each argv.0 as char} {@echo char, char} {@/} And an explanation: - `{@each argv.0 as char}` Loops over each value in `argv.0`, which is the first argument given when calling the `render()` method. Due to this, you can pass an array of characters or a simple string, and it will loop through it. The `as char` is optional and the default variable name is `_`. **Whitespace is optional** - `{@echo char, char}` Outputs `char`. Twice. **Whitespace is optional** - `{@/}` Closes the scope of the `{@each ... }`. **This is optional**, as the language was written to keep track of how many scopes were open and automatically closes all at the end. Pretty simple, right? You can try it on: http://sandbox.onlinephpfunctions.com/code/d008a116a051df131edf02533182c5305cf8e834 When trying, you can go to line 906 and change the variable between `$golfed` and `$ungolfed` to try both versions. [1]: https://github.com/ismael-miguel/SimpleTemplate