# I reverse the source code, you reverse the input!

Yet another blatant rip-off of a rip-off of a rip-off. Go upvote those!

Your task, if you wish to accept it, is to write a program/function that outputs/returns its string input/argument. The tricky part is that if I reverse your source code, the output must be reversed too.

For simplicity, you can assume that the input is always a single line string containing only ASCII letters (a-z), digits (0-9) and spaces.

Should support an input of at least 8 characters long (longer than 8 is not necessary).

Behaviour for empty input is undefined.

## Examples

Let's say your source code is ABC and its input is xyz. If I write CBA instead and run it, the output must be zyx.

Let's say your source code is ABC and its input is 96. If I write CBA instead and run it, the output must be 69.

A single leading or trailing white-space is acceptable as long as it is consistent in both normal and reversed outputs.

# JavaScript, 32 bytes

s=>s//nioj.)(esrever.]s...[>=s


Reversed:

s=>[...s].reverse().join//s>=s

• Well done, didn't know JS doesn't have a builtin reverse for strings. By the way, TIO links usually make answers more likable: Try it online! Reversed – Night2 Sep 22 at 14:12
• There is no string reverse. [...s] converts to array, which is reversed then joined back together as a string. – James Sep 22 at 14:59
• If you also stumbled over .join - have a look at Tagged Templates – nitzel Sep 23 at 9:37

# APL (Dyalog Unicode), 3 2 bytesSBCS

-1 byte thanks to dzaima

⌽⊂


Try it online!

⊂ enclose the argument to treat it as a singleton: [1,2,3][[1,2,3]]

⌽ reverse (has no effect on singletons): [[1,2,3]][[1,2,3]]

An enclosed array prints with a leading an a trailing space.

!enilno ti yrT

⌽ reverse (has no effect on singletons): [1,2,3][3,2,1]

⊂ enclose: [1,2,3][[1,2,3]]

An enclosed array prints with a leading an a trailing space.

• Nice. Digraphs make this more difficult in J... haven’t come up with anything yet – Jonah Sep 22 at 15:31

# Bash, 9 bytes

cat # ver


Reversed:

rev # tac

• This would be easier if the challenge was to reverse the line order; then I could just use cat. – JL2210 Sep 23 at 11:43

# Keg, 3 2 bytes

#?


No TIO yet as this uses the most recent interpreter

## Explained

#? #Implicit cat
?# Reversed input


Heh. That's right. Keg can stand up to those 2-byte answers too (and using pure, plain ASCII)!

## Old Program

^#?


Because two can play the 3-byte game. That's why. (did I mention that's 3 bytes of utf8 ASCII?)

^#? #Reverse an empty stack, taking implicit input

?#^ #take input


# Ruby, 21 bytes

->x{x}#}esrever.x{x>-


Try it online!

->x{x.reverse}#}x{x>-


!enilno ti yrT

# Charcoal, 2 bytes

Ｓ←


Try it online! Explanation: Ｓ implicitly prints the explicit input and ← moves the cursor left (no effect on the final output). Reversed:

←Ｓ


Try it online! ← changes the direction of the implicit print of the explicit input Ｓ thus reversing the output.

id--esrever


## Stack Cats-m, 4 bytes

|>I|


Try it online!

Try it reversed!

This works for any inputs that don't contain null bytes.

### Explanation

Wow, I've reached the point where I'm writing these by hand...

The full program is |>I|I<|.

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
>   Move one stack over to the right (which only contains zeros).
I   Does nothing on zero.
|   Does nothing on zero.
I   Does nothing on zero.
<   Move back to the initial stack.
|   Reverse the input once more.


As in the solution to the previous challenge, since the centre command | does nothing, so does the entire program.

The reversed program is then |I>|<I|.

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I   Move the -1 one stack to the left and turn it into a +1.
>   Move back to the initial stack.
|   Reverse it again, but this time without the EOF marker.
<   Move back to the left.
I   Move the +1 back onto the initial stack and turn it into a -1 again.
|   Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
and the rest of the stack has been reversed three times, i.e. one net reversal.


Interestingly, if we use this reversing program without -m we still get a working solution this time, so the only additional bytes incurred by omitting -m are those we get from mirroring the code.

## Stack Cats, 7 bytes

|I<|>I|


Try it online!

Try it reversed!

### Explanation

The reversed version of this program is |I>|<I|, the same as above so we can ignore that. But the non-reversed version differs. Since the <> now point the other way, the centre command ends up doing nothing, so the program becomes a cat:

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I   Move the -1 one stack to the left and turn it into a +1.
<   Move another stack to the left, which contains only zeros.
|   Does nothing on zero.


And thus, >I| exactly undo the first half of the program.

# 05AB1E, 2 bytes

RI


Explanation:

R   # Reverse the (implicit) input
I  # Push the input
# (output the top of the stack implicitly as result)

I   # Push the input
R  # Reverse it
# (output the top of the stack implicitly as result)


# Japt, 2 bytes

ÔU


# Cubix, 19 bytes

.@o?A^;/|?$oqBA.UW.  Try it online! Cubified  . @ o ? A ^ ; / | ?$ o
q B A . U W . .
. .
. .

• A^ get all the input and enter the loop
• o? output the TOS of stack and test
• @ exit if it tests to negative
• /;^ reflect back, pop TOS and re-enter loop

All other commands are avoided.

Reversed

.WU.ABqo$?|/;^A?o@.  Try it online! Cubified  . W U . A B q o$ ? | /
; ^ A ? o @ . .
. .
. .

• ABq Get all input, reverse and drop TOS to bottom of stack
• o$?|? output TOS, skip the test and relect back onto test • @ halt if test if negative • WUq change lane, u-turn onto drop TOS start of loop # Python 3, 27 bytes lambda s:s#]1-::[s:s adbmal  Try it online! !enilno ti yrT # Pip, 4 bytes aVRa  Makes use of the fact that RV is the reverse operator but VR is an undefined variable. Both versions print the value of their last expression; in the standard version, that's a (with the first a and the VR being no-ops), while in the reversed version, that's RVa (with the first a being a no-op). # Wolfram Language (Mathematica), 16 bytes 1&esreveR//#& &1  Try it online! Reversed: 1& &#//Reverse&1  Try it online! Takes a list of characters as input. For string input, use StringReverse. # Kotlin, 15 bytes My first Kotlin answer, and far shorter than the java equivalent! s//()desrever.s  Try it online! Reversed: s.reversed()//s  !enilno ti yrT • The parenthesis are the wrong way. A more correct answer would be s//)(desrever.s. However i think it is custom to provide at least a full lambda in Kotlin (or at least Java). So something like {it}//})(desrever.ti{ should do the trick. – Roman Gräf Sep 25 at 15:36 # Turing Machine Language, 14324 14321 bytes 0 ( ( l 6 ; 0 * * l 2 ; 1 _ _ l 2 ; 2 _ ( r 3 ; 3 _ _ r 4 ; 4 _ _ l 3) ; 4 * * r 2 ; 3) _ ) l 5 ; 3 * * r 3 ; 5 ( ( * 0 ; 5 * * l 5 ; 6 _ _ l 7 ; 7 _ ] r 8 ; 8 ) ) l 9 ; 8 * * r 8 ; 9 0 @ l c0 ; 9 1 @ l c1 ; 9 2 @ l c2 ; 9 3 @ l c3 ; 9 4 @ l c4 ; 9 5 @ l c5 ; 9 6 @ l c6 ; 9 7 @ l c7 ; 9 8 @ l c8 ; 9 9 @ l c9 ; 9 a @ l a ; 9 A @ l A ; 9 b @ l b ; 9 B @ l B ; 9 c @ l c ; 9 C @ l C ; 9 d @ l d ; 9 D @ l D ; 9 e @ l e ; 9 E @ l E ; 9 f @ l f ; 9 F @ l F ; 9 g @ l g ; 9 G @ l G ; 9 h @ l h ; 9 H @ l H ; 9 i @ l i ; 9 I @ l I ; 9 j @ l j ; 9 J @ l J ; 9 k @ l k ; 9 K @ l K ; 9 l @ l l ; 9 L @ l L ; 9 m @ l m ; 9 M @ l M ; 9 n @ l n ; 9 N @ l N ; 9 o @ l o ; 9 O @ l O ; 9 p @ l p ; 9 P @ l P ; 9 q @ l q ; 9 Q @ l Q ; 9 r @ l r ; 9 R @ l R ; 9 s @ l s ; 9 S @ l S ; 9 t @ l t ; 9 T @ l T ; 9 u @ l u ; 9 U @ l U ; 9 v @ l v ; 9 V @ l V ; 9 w @ l w ; 9 W @ l W ; 9 x @ l x ; 9 X @ l X ; 9 y @ l y ; 9 Y @ l Y ; 9 z @ l z ; 9 Z @ l Z ; c0 ] ] l c0a ; c0 * * l c0 ; c0a _ 0 r @0 ; c0a * * l c0a ; @0 @ 0 l nC ; @0 * * r @0 ; c1 ] ] l c1a ; c1 * * l c1 ; c1a _ 1 r @1 ; c1a * * l c1a ; @1 @ 1 l nC ; @1 * * r @1 ; c2 ] ] l c2a ; c2 * * l c2 ; c2a _ 2 r @2 ; c2a * * l c2a ; @2 @ 2 l nC ; @2 * * r @2 ; c3 ] ] l c3a ; c3 * * l c3 ; c3a _ 3 r @3 ; c3a * * l c3a ; @3 @ 3 l nC ; @3 * * r @3 ; c4 ] ] l c4a ; c4 * * l c4 ; c4a _ 4 r @4 ; c4a * * l c4a ; @4 @ 4 l nC ; @4 * * r @4 ; c5 ] ] l c5a ; c5 * * l c5 ; c5a _ 5 r @5 ; c5a * * l c5a ; @5 @ 5 l nC ; @5 * * r @5 ; c6 ] ] l c6a ; c6 * * l c6 ; c6a _ 6 r @6 ; c6a * * l c6a ; @6 @ 6 l nC ; @6 * * r @6 ; c7 ] ] l c7a ; c7 * * l c7 ; c7a _ 7 r @7 ; c7a * * l c7a ; @7 @ 7 l nC ; @7 * * r @7 ; c8 ] ] l c8a ; c8 * * l c8 ; c8a _ 8 r @8 ; c8a * * l c8a ; @8 @ 8 l nC ; @8 * * r @8 ; c9 ] ] l c9a ; c9 * * l c9 ; c9a _ 9 r @9 ; c9a * * l c9a ; @9 @ 9 l nC ; @9 * * r @9 ; a ] ] l aa ; a * * l a ; aa _ a r @a ; aa * * l aa ; @a @ a l nC ; @a * * r @a ; A ] ] l Aa ; A * * l A ; Aa _ A r @A ; Aa * * l Aa ; @A @ A l nC ; @A * * r @A ; b ] ] l ba ; b * * l b ; ba _ b r @b ; ba * * l ba ; @b @ b l nC ; @b * * r @b ; B ] ] l Ba ; B * * l B ; Ba _ B r @B ; Ba * * l Ba ; @B @ B l nC ; @B * * r @B ; c ] ] l ca ; c * * l c ; ca _ c r @c ; ca * * l ca ; @c @ c l nC ; @c * * r @c ; C ] ] l Ca ; C * * l C ; Ca _ C r @C ; Ca * * l Ca ; @C @ C l nC ; @C * * r @C ; d ] ] l da ; d * * l d ; da _ d r @d ; da * * l da ; @d @ d l nC ; @d * * r @d ; D ] ] l Da ; D * * l D ; Da _ D r @D ; Da * * l Da ; @D @ D l nC ; @D * * r @D ; e ] ] l ea ; e * * l e ; ea _ e r @e ; ea * * l ea ; @e @ e l nC ; @e * * r @e ; E ] ] l Ea ; E * * l E ; Ea _ E r @E ; Ea * * l Ea ; @E @ E l nC ; @E * * r @E ; f ] ] l fa ; f * * l f ; fa _ f r @f ; fa * * l fa ; @f @ f l nC ; @f * * r @f ; F ] ] l Fa ; F * * l F ; Fa _ F r @F ; Fa * * l Fa ; @F @ F l nC ; @F * * r @F ; g ] ] l ga ; g * * l g ; ga _ g r @g ; ga * * l ga ; @g @ g l nC ; @g * * r @g ; G ] ] l Ga ; G * * l G ; Ga _ G r @G ; Ga * * l Ga ; @G @ G l nC ; @G * * r @G ; h ] ] l ha ; h * * l h ; ha _ h r @h ; ha * * l ha ; @h @ h l nC ; @h * * r @h ; H ] ] l Ha ; H * * l H ; Ha _ H r @H ; Ha * * l Ha ; @H @ H l nC ; @H * * r @H ; i ] ] l ia ; i * * l i ; ia _ i r @i ; ia * * l ia ; @i @ i l nC ; @i * * r @i ; I ] ] l Ia ; I * * l I ; Ia _ I r @I ; Ia * * l Ia ; @I @ I l nC ; @I * * r @I ; j ] ] l ja ; j * * l j ; ja _ j r @j ; ja * * l ja ; @j @ j l nC ; @j * * r @j ; J ] ] l Ja ; J * * l J ; Ja _ J r @J ; Ja * * l Ja ; @J @ J l nC ; @J * * r @J ; k ] ] l ka ; k * * l k ; ka _ k r @k ; ka * * l ka ; @k @ k l nC ; @k * * r @k ; K ] ] l Ka ; K * * l K ; Ka _ K r @K ; Ka * * l Ka ; @K @ K l nC ; @K * * r @K ; l ] ] l la ; l * * l l ; la _ l r @l ; la * * l la ; @l @ l l nC ; @l * * r @l ; L ] ] l La ; L * * l L ; La _ L r @L ; La * * l La ; @L @ L l nC ; @L * * r @L ; m ] ] l ma ; m * * l m ; ma _ m r @m ; ma * * l ma ; @m @ m l nC ; @m * * r @m ; M ] ] l Ma ; M * * l M ; Ma _ M r @M ; Ma * * l Ma ; @M @ M l nC ; @M * * r @M ; n ] ] l na ; n * * l n ; na _ n r @n ; na * * l na ; @n @ n l nC ; @n * * r @n ; N ] ] l Na ; N * * l N ; Na _ N r @N ; Na * * l Na ; @N @ N l nC ; @N * * r @N ; o ] ] l oa ; o * * l o ; oa _ o r @o ; oa * * l oa ; @o @ o l nC ; @o * * r @o ; O ] ] l Oa ; O * * l O ; Oa _ O r @O ; Oa * * l Oa ; @O @ O l nC ; @O * * r @O ; p ] ] l pa ; p * * l p ; pa _ p r @p ; pa * * l pa ; @p @ p l nC ; @p * * r @p ; P ] ] l Pa ; P * * l P ; Pa _ P r @P ; Pa * * l Pa ; @P @ P l nC ; @P * * r @P ; q ] ] l qa ; q * * l q ; qa _ q r @q ; qa * * l qa ; @q @ q l nC ; @q * * r @q ; Q ] ] l Qa ; Q * * l Q ; Qa _ Q r @Q ; Qa * * l Qa ; @Q @ Q l nC ; @Q * * r @Q ; r ] ] l ra ; r * * l r ; ra _ r r @r ; ra * * l ra ; @r @ r l nC ; @r * * r @r ; R ] ] l Ra ; R * * l R ; Ra _ R r @R ; Ra * * l Ra ; @R @ R l nC ; @R * * r @R ; s ] ] l sa ; s * * l s ; sa _ s r @s ; sa * * l sa ; @s @ s l nC ; @s * * r @s ; S ] ] l Sa ; S * * l S ; Sa _ S r @S ; Sa * * l Sa ; @S @ S l nC ; @S * * r @S ; t ] ] l ta ; t * * l t ; ta _ t r @t ; ta * * l ta ; @t @ t l nC ; @t * * r @t ; T ] ] l Ta ; T * * l T ; Ta _ T r @T ; Ta * * l Ta ; @T @ T l nC ; @T * * r @T ; u ] ] l ua ; u * * l u ; ua _ u r @u ; ua * * l ua ; @u @ u l nC ; @u * * r @u ; U ] ] l Ua ; U * * l U ; Ua _ U r @U ; Ua * * l Ua ; @U @ U l nC ; @U * * r @U ; v ] ] l va ; v * * l v ; va _ v r @v ; va * * l va ; @v @ v l nC ; @v * * r @v ; V ] ] l Va ; V * * l V ; Va _ V r @V ; Va * * l Va ; @V @ V l nC ; @V * * r @V ; w ] ] l wa ; w * * l w ; wa _ w r @w ; wa * * l wa ; @w @ w l nC ; @w * * r @w ; W ] ] l Wa ; W * * l W ; Wa _ W r @W ; Wa * * l Wa ; @W @ W l nC ; @W * * r @W ; x ] ] l xa ; x * * l x ; xa _ x r @x ; xa * * l xa ; @x @ x l nC ; @x * * r @x ; X ] ] l Xa ; X * * l X ; Xa _ X r @X ; Xa * * l Xa ; @X @ X l nC ; @X * * r @X ; y ] ] l ya ; y * * l y ; ya _ y r @y ; ya * * l ya ; @y @ y l nC ; @y * * r @y ; Y ] ] l Ya ; Y * * l Y ; Ya _ Y r @Y ; Ya * * l Ya ; @Y @ Y l nC ; @Y * * r @Y ; z ] ] l za ; z * * l z ; za _ z r @z ; za * * l za ; @z @ z l nC ; @z * * r @z ; Z ] ] l Za ; Z * * l Z ; Za _ Z r @Z ; Za * * l Za ; @Z @ Z l nC ; @Z * * r @Z ; Sp ] ] l Sp1 ; Sp * * l Sp ; Sp1 _ ~ r @Sp ; Sp1 * * l Sp1 ; @Sp @ _ l nC ; @Sp * * r @Sp ; nC _ @ l Sp ; nC 0 0 * 9 ; nC 1 1 * 9 ; nC 2 2 * 9 ; nC 3 3 * 9 ; nC 4 4 * 9 ; nC 5 5 * 9 ; nC 6 6 * 9 ; nC 7 7 * 9 ; nC 8 8 * 9 ; nC 9 9 * 9 ; nC - - * 9 ; nC a a * 9 ; nC A A * 9 ; nC b b * 9 ; nC B B * 9 ; nC c c * 9 ; nC C C * 9 ; nC d d * 9 ; nC D D * 9 ; nC e e * 9 ; nC E E * 9 ; nC f f * 9 ; nC F F * 9 ; nC g g * 9 ; nC G G * 9 ; nC h h * 9 ; nC H H * 9 ; nC i i * 9 ; nC I I * 9 ; nC j j * 9 ; nC J J * 9 ; nC k k * 9 ; nC K K * 9 ; nC l l * 9 ; nC L L * 9 ; nC m m * 9 ; nC M M * 9 ; nC n n * 9 ; nC N N * 9 ; nC o o * 9 ; nC O O * 9 ; nC p p * 9 ; nC P P * 9 ; nC q q * 9 ; nC Q Q * 9 ; nC r r * 9 ; nC R R * 9 ; nC s s * 9 ; nC S S * 9 ; nC t t * 9 ; nC T T * 9 ; nC u u * 9 ; nC U U * 9 ; nC v v * 9 ; nC V V * 9 ; nC w w * 9 ; nC W W * 9 ; nC x x * 9 ; nC X X * 9 ; nC y y * 9 ; nC Y Y * 9 ; nC z z * 9 ; nC Z Z * 9 ; nC ( ( * fC ; fC ] ] l fC1 ; fC * * l fC ; fC1 _ [ * cl ; fC1 * * l fC1 ; cl [ _ r cl ; cl ] _ r cl ; cl ~ _ r cl ; cl ( _ r clO ; clO ) _ * halt-accept ; clO * _ r clO ; cl ) ) * halt-accept ; cl * * r cl ; ; lc r * * lc ; tpecca-tlah * ) ) lc ; Olc r _ * Olc ; tpecca-tlah * _ ) Olc ; Olc r _ ( lc ; lc r _ ~ lc ; lc r _ ] lc ; lc r _ [ lc ; 1Cf l * * 1Cf ; lc * [ _ 1Cf ; Cf l * * Cf ; 1Cf l ] ] Cf ; Cf * ) ) Cn ; 9 * Z Z Cn ; 9 * z z Cn ; 9 * Y Y Cn ; 9 * y y Cn ; 9 * X X Cn ; 9 * x x Cn ; 9 * W W Cn ; 9 * w w Cn ; 9 * V V Cn ; 9 * v v Cn ; 9 * U U Cn ; 9 * u u Cn ; 9 * T T Cn ; 9 * t t Cn ; 9 * S S Cn ; 9 * s s Cn ; 9 * R R Cn ; 9 * r r Cn ; 9 * Q Q Cn ; 9 * q q Cn ; 9 * P P Cn ; 9 * p p Cn ; 9 * O O Cn ; 9 * o o Cn ; 9 * N N Cn ; 9 * n n Cn ; 9 * M M Cn ; 9 * m m Cn ; 9 * L L Cn ; 9 * l l Cn ; 9 * K K Cn ; 9 * k k Cn ; 9 * J J Cn ; 9 * j j Cn ; 9 * I I Cn ; 9 * i i Cn ; 9 * H H Cn ; 9 * h h Cn ; 9 * G G Cn ; 9 * g g Cn ; 9 * F F Cn ; 9 * f f Cn ; 9 * E E Cn ; 9 * e e Cn ; 9 * D D Cn ; 9 * d d Cn ; 9 * C C Cn ; 9 * c c Cn ; 9 * B B Cn ; 9 * b b Cn ; 9 * A A Cn ; 9 * a a Cn ; 9 * - - Cn ; 9 * 9 9 Cn ; 9 * 8 8 Cn ; 9 * 7 7 Cn ; 9 * 6 6 Cn ; 9 * 5 5 Cn ; 9 * 4 4 Cn ; 9 * 3 3 Cn ; 9 * 2 2 Cn ; 9 * 1 1 Cn ; 9 * 0 0 Cn ; pS l @ _ Cn ; pS@ r * * pS@ ; Cn r _ @ pS@ ; 1pS l * * 1pS ; pS@ r ~ _ 1pS ; pS l * * pS ; 1pS l ] ] pS ; Z@ r * * Z@ ; Cn r Z @ Z@ ; aZ l * * aZ ; Z@ r Z _ aZ ; Z l * * Z ; aZ l ] ] Z ; z@ r * * z@ ; Cn r z @ z@ ; az l * * az ; z@ r z _ az ; z l * * z ; az l ] ] z ; Y@ r * * Y@ ; Cn r Y @ Y@ ; aY l * * aY ; Y@ r Y _ aY ; Y l * * Y ; aY l ] ] Y ; y@ r * * y@ ; Cn r y @ y@ ; ay l * * ay ; y@ r y _ ay ; y l * * y ; ay l ] ] y ; X@ r * * X@ ; Cn r X @ X@ ; aX l * * aX ; X@ r X _ aX ; X l * * X ; aX l ] ] X ; x@ r * * x@ ; Cn r x @ x@ ; ax l * * ax ; x@ r x _ ax ; x l * * x ; ax l ] ] x ; W@ r * * W@ ; Cn r W @ W@ ; aW l * * aW ; W@ r W _ aW ; W l * * W ; aW l ] ] W ; w@ r * * w@ ; Cn r w @ w@ ; aw l * * aw ; w@ r w _ aw ; w l * * w ; aw l ] ] w ; V@ r * * V@ ; Cn r V @ V@ ; aV l * * aV ; V@ r V _ aV ; V l * * V ; aV l ] ] V ; v@ r * * v@ ; Cn r v @ v@ ; av l * * av ; v@ r v _ av ; v l * * v ; av l ] ] v ; U@ r * * U@ ; Cn r U @ U@ ; aU l * * aU ; U@ r U _ aU ; U l * * U ; aU l ] ] U ; u@ r * * u@ ; Cn r u @ u@ ; au l * * au ; u@ r u _ au ; u l * * u ; au l ] ] u ; T@ r * * T@ ; Cn r T @ T@ ; aT l * * aT ; T@ r T _ aT ; T l * * T ; aT l ] ] T ; t@ r * * t@ ; Cn r t @ t@ ; at l * * at ; t@ r t _ at ; t l * * t ; at l ] ] t ; S@ r * * S@ ; Cn r S @ S@ ; aS l * * aS ; S@ r S _ aS ; S l * * S ; aS l ] ] S ; s@ r * * s@ ; Cn r s @ s@ ; as l * * as ; s@ r s _ as ; s l * * s ; as l ] ] s ; R@ r * * R@ ; Cn r R @ R@ ; aR l * * aR ; R@ r R _ aR ; R l * * R ; aR l ] ] R ; r@ r * * r@ ; Cn r r @ r@ ; ar l * * ar ; r@ r r _ ar ; r l * * r ; ar l ] ] r ; Q@ r * * Q@ ; Cn r Q @ Q@ ; aQ l * * aQ ; Q@ r Q _ aQ ; Q l * * Q ; aQ l ] ] Q ; q@ r * * q@ ; Cn r q @ q@ ; aq l * * aq ; q@ r q _ aq ; q l * * q ; aq l ] ] q ; P@ r * * P@ ; Cn r P @ P@ ; aP l * * aP ; P@ r P _ aP ; P l * * P ; aP l ] ] P ; p@ r * * p@ ; Cn r p @ p@ ; ap l * * ap ; p@ r p _ ap ; p l * * p ; ap l ] ] p ; O@ r * * O@ ; Cn r O @ O@ ; aO l * * aO ; O@ r O _ aO ; O l * * O ; aO l ] ] O ; o@ r * * o@ ; Cn r o @ o@ ; ao l * * ao ; o@ r o _ ao ; o l * * o ; ao l ] ] o ; N@ r * * N@ ; Cn r N @ N@ ; aN l * * aN ; N@ r N _ aN ; N l * * N ; aN l ] ] N ; n@ r * * n@ ; Cn r n @ n@ ; an l * * an ; n@ r n _ an ; n l * * n ; an l ] ] n ; M@ r * * M@ ; Cn r M @ M@ ; aM l * * aM ; M@ r M _ aM ; M l * * M ; aM l ] ] M ; m@ r * * m@ ; Cn r m @ m@ ; am l * * am ; m@ r m _ am ; m l * * m ; am l ] ] m ; L@ r * * L@ ; Cn r L @ L@ ; aL l * * aL ; L@ r L _ aL ; L l * * L ; aL l ] ] L ; l@ r * * l@ ; Cn r l @ l@ ; al l * * al ; l@ r l _ al ; l l * * l ; al l ] ] l ; K@ r * * K@ ; Cn r K @ K@ ; aK l * * aK ; K@ r K _ aK ; K l * * K ; aK l ] ] K ; k@ r * * k@ ; Cn r k @ k@ ; ak l * * ak ; k@ r k _ ak ; k l * * k ; ak l ] ] k ; J@ r * * J@ ; Cn r J @ J@ ; aJ l * * aJ ; J@ r J _ aJ ; J l * * J ; aJ l ] ] J ; j@ r * * j@ ; Cn r j @ j@ ; aj l * * aj ; j@ r j _ aj ; j l * * j ; aj l ] ] j ; I@ r * * I@ ; Cn r I @ I@ ; aI l * * aI ; I@ r I _ aI ; I l * * I ; aI l ] ] I ; i@ r * * i@ ; Cn r i @ i@ ; ai l * * ai ; i@ r i _ ai ; i l * * i ; ai l ] ] i ; H@ r * * H@ ; Cn r H @ H@ ; aH l * * aH ; H@ r H _ aH ; H l * * H ; aH l ] ] H ; h@ r * * h@ ; Cn r h @ h@ ; ah l * * ah ; h@ r h _ ah ; h l * * h ; ah l ] ] h ; G@ r * * G@ ; Cn r G @ G@ ; aG l * * aG ; G@ r G _ aG ; G l * * G ; aG l ] ] G ; g@ r * * g@ ; Cn r g @ g@ ; ag l * * ag ; g@ r g _ ag ; g l * * g ; ag l ] ] g ; F@ r * * F@ ; Cn r F @ F@ ; aF l * * aF ; F@ r F _ aF ; F l * * F ; aF l ] ] F ; f@ r * * f@ ; Cn r f @ f@ ; af l * * af ; f@ r f _ af ; f l * * f ; af l ] ] f ; E@ r * * E@ ; Cn r E @ E@ ; aE l * * aE ; E@ r E _ aE ; E l * * E ; aE l ] ] E ; e@ r * * e@ ; Cn r e @ e@ ; ae l * * ae ; e@ r e _ ae ; e l * * e ; ae l ] ] e ; D@ r * * D@ ; Cn r D @ D@ ; aD l * * aD ; D@ r D _ aD ; D l * * D ; aD l ] ] D ; d@ r * * d@ ; Cn r d @ d@ ; ad l * * ad ; d@ r d _ ad ; d l * * d ; ad l ] ] d ; C@ r * * C@ ; Cn r C @ C@ ; aC l * * aC ; C@ r C _ aC ; C l * * C ; aC l ] ] C ; c@ r * * c@ ; Cn r c @ c@ ; ac l * * ac ; c@ r c _ ac ; c l * * c ; ac l ] ] c ; B@ r * * B@ ; Cn r B @ B@ ; aB l * * aB ; B@ r B _ aB ; B l * * B ; aB l ] ] B ; b@ r * * b@ ; Cn r b @ b@ ; ab l * * ab ; b@ r b _ ab ; b l * * b ; ab l ] ] b ; A@ r * * A@ ; Cn r A @ A@ ; aA l * * aA ; A@ r A _ aA ; A l * * A ; aA l ] ] A ; a@ r * * a@ ; Cn r a @ a@ ; aa l * * aa ; a@ r a _ aa ; a l * * a ; aa l ] ] a ; 9@ r * * 9@ ; Cn r 9 @ 9@ ; a9c l * * a9c ; 9@ r 9 _ a9c ; 9c l * * 9c ; a9c l ] ] 9c ; 8@ r * * 8@ ; Cn r 8 @ 8@ ; a8c l * * a8c ; 8@ r 8 _ a8c ; 8c l * * 8c ; a8c l ] ] 8c ; 7@ r * * 7@ ; Cn r 7 @ 7@ ; a7c l * * a7c ; 7@ r 7 _ a7c ; 7c l * * 7c ; a7c l ] ] 7c ; 6@ r * * 6@ ; Cn r 6 @ 6@ ; a6c l * * a6c ; 6@ r 6 _ a6c ; 6c l * * 6c ; a6c l ] ] 6c ; 5@ r * * 5@ ; Cn r 5 @ 5@ ; a5c l * * a5c ; 5@ r 5 _ a5c ; 5c l * * 5c ; a5c l ] ] 5c ; 4@ r * * 4@ ; Cn r 4 @ 4@ ; a4c l * * a4c ; 4@ r 4 _ a4c ; 4c l * * 4c ; a4c l ] ] 4c ; 3@ r * * 3@ ; Cn r 3 @ 3@ ; a3c l * * a3c ; 3@ r 3 _ a3c ; 3c l * * 3c ; a3c l ] ] 3c ; 2@ r * * 2@ ; Cn r 2 @ 2@ ; a2c l * * a2c ; 2@ r 2 _ a2c ; 2c l * * 2c ; a2c l ] ] 2c ; 1@ r * * 1@ ; Cn r 1 @ 1@ ; a1c l * * a1c ; 1@ r 1 _ a1c ; 1c l * * 1c ; a1c l ] ] 1c ; 0@ r * * 0@ ; Cn r 0 @ 0@ ; a0c l * * a0c ; 0@ r 0 _ a0c ; 0c l * * 0c ; a0c l ] ] 0c ; Z l @ Z 9 ; z l @ z 9 ; Y l @ Y 9 ; y l @ y 9 ; X l @ X 9 ; x l @ x 9 ; W l @ W 9 ; w l @ w 9 ; V l @ V 9 ; v l @ v 9 ; U l @ U 9 ; u l @ u 9 ; T l @ T 9 ; t l @ t 9 ; S l @ S 9 ; s l @ s 9 ; R l @ R 9 ; r l @ r 9 ; Q l @ Q 9 ; q l @ q 9 ; P l @ P 9 ; p l @ p 9 ; O l @ O 9 ; o l @ o 9 ; N l @ N 9 ; n l @ n 9 ; M l @ M 9 ; m l @ m 9 ; L l @ L 9 ; l l @ l 9 ; K l @ K 9 ; k l @ k 9 ; J l @ J 9 ; j l @ j 9 ; I l @ I 9 ; i l @ i 9 ; H l @ H 9 ; h l @ h 9 ; G l @ G 9 ; g l @ g 9 ; F l @ F 9 ; f l @ f 9 ; E l @ E 9 ; e l @ e 9 ; D l @ D 9 ; d l @ d 9 ; C l @ C 9 ; c l @ c 9 ; B l @ B 9 ; b l @ b 9 ; A l @ A 9 ; a l @ a 9 ; 9c l @ 9 9 ; 8c l @ 8 9 ; 7c l @ 7 9 ; 6c l @ 6 9 ; 5c l @ 5 9 ; 4c l @ 4 9 ; 3c l @ 3 9 ; 2c l @ 2 9 ; 1c l @ 1 9 ; 0c l @ 0 9 ; 8 r * * 8 ; 9 r ( ( 8 ; 8 r ] _ 7 ; 7 l _ _ 6 ; 5 l * * 5 ; 0 * ( ( 5 ; 3 r * * 3 ; 5 l ) _ )3 ; 3 r * * 4 ; )3 l _ _ 4 ; 4 r _ _ 3 ; 3 r ( _ 2 ; 2 l _ _ 1 ; 2 l * * 0 ; 6 l ( ( 0  Try it online! Try it reversed! I used this site to reverse it. • Well...! I hope you haven't written the first half, manually! I really hope! – Night2 Sep 26 at 14:23 • It really wasn't that much once I had the strategy sorted. After the basic logic was laid out, it was mostly copy/pasting/tweaking followed by debugging my muffed attempts at copy/pasting/tweaking. – ouflak Sep 26 at 15:33 ## MathGolf, 3 bytes x;l  ## Explanation: x Reverse the implicit input ; Discard the string l Push a string input Implicit output TOS  Reversed: l Push a string input ; Discard it x Reverse the implicit input Implicit output TOS  # Pushy, 4 bytes "\"@  Try it online: Forwards, Backwards Simple implementation with the comment character \. In the forwards program, " prints the input and the rest is a comment; in the backwards program, @ reverses the input before printing. We could alternatively replace \ with c, which would clear the input from the stack. # Jelly, 2 bytes Uṛ  Try it online! Reversed! ## Explanation U | Reverse ṛ | Right argument (when used in a monadic chain like this, will return the original argument to the chain)  ## Explanation (reversed) ṛ | Right argument (when used in a monadic chain and followed by a monadic link, will return the output of that monadic link) U | Reverse  Seven other two-byters Ṛṛ ḷU ḷṚ Uȧ Ṛȧ ȯU ȯṚ # Perl 5-p, 11 bytes The obvious. #esrever=_$


# Brain-Flak, 13 bytes

#><}><)><}{({


Try it online!

Forward: Just a comment, so that it just outputs the input

Reversed:

{({}<>)<>}<>#


Try it online!

Move everything to the second stack, so it is reversed.

# CJam, 7 bytes

qe#e%Wq


Boring version with comments. If CJam would fail silently i could have saved like 3 bytes in 2 questions already!

# Stax, 2 bytes

Pr