| Bytes | Lang | Time | Link |
|---|---|---|---|
| 010 | Wolfram Language Mathematica | 190923T071255Z | att |
| 004 | J 9 | 230925T013013Z | Bubbler |
| 002 | RProgN 2 | 230924T231119Z | ATaco |
| 084 | TypeScript's Type System | 230924T154617Z | noodle p |
| 035 | Python 3.11 | 230924T121639Z | Joao-3 |
| 002 | Vyxal | 230918T175312Z | pacman25 |
| 009 | Raku | 210412T191831Z | Sean |
| 002 | Stack Exchange | 210412T190300Z | user |
| 017 | Factor | 210331T160426Z | user |
| nan | Pxem | 210326T122439Z | user1004 |
| 023 | VBA | 210326T150022Z | Engineer |
| 005 | BRASCA brascaonline | 210326T125832Z | SjoerdPe |
| 034 | Rust | 200810T213945Z | TehPers |
| 069 | Google Sheets | 200810T122117Z | General |
| 012 | MAWP | 200810T105232Z | Razetime |
| nan | Turing Machine Language | 190926T132205Z | ouflak |
| 002 | APL Dyalog Unicode | 190922T073710Z | Adá |
| 019 | x86 opcode | 200423T091726Z | l4m2 |
| 002 | Keg | 190922T075830Z | lyxal |
| 002 | W | 191212T135956Z | user8505 |
| 056 | C gcc | 191212T025353Z | gastropn |
| 002 | Gaia | 191024T180942Z | Business |
| 007 | J | 191024T070837Z | Bubbler |
| 003 | Pyth | 191023T134950Z | Citty |
| 027 | PHP | 191022T062932Z | Night2 |
| 015 | Kotlin | 190923T152828Z | Lucy Ste |
| 004 | Pushy | 191010T172514Z | FlipTack |
| 003 | MathGolf | 191010T141324Z | user8505 |
| 002 | Charcoal | 190922T092407Z | Neil |
| 002 | Stax | 190926T174943Z | Oliver |
| 007 | CJam | 190925T153836Z | Linnea G |
| 004 | Stack Cats m | 190924T145456Z | Martin E |
| 013 | BrainFlak | 190923T145435Z | Dorian |
| 011 | Perl 5 p | 190923T124147Z | msh210 |
| 004 | Pip | 190923T072002Z | DLosc |
| 027 | Python 3 | 190923T070518Z | Jitse |
| 002 | 05AB1E | 190923T070152Z | Kevin Cr |
| 009 | Bash | 190923T004350Z | S.S. Ann |
| 019 | Cubix | 190922T194717Z | MickyT |
| 021 | Ruby | 190922T191742Z | Eric Dum |
| 032 | JavaScript | 190922T140549Z | James |
| 002 | Japt | 190922T133343Z | Shaggy |
| 002 | Jelly | 190922T081516Z | Nick Ken |
| 011 | Haskell | 190922T110002Z | ovs |
Wolfram Language (Mathematica), 16 10 bytes
esreveR@@D
Reversed:
D@@Reverse
Input a list of characters. For string input, use StringReverse.
J 9, 4 bytes
][.|
See this answer for the 7-byter that works in previous versions.
J 9 (re-)introduces modifier trains and adds some adverb and conjunction equivalents of identity functions (] and [):
]: Ident (adverb) / u]: evaluates to u
]. Dex (conjunction) / u].v evaluates to v
[. Lev (conjunction) / u[.v evaluates to u
The above code parses as
] [. | left operand ([.) out of identity(]) and absolute value(|),
which is identity
while the reverse |.[] parses as a 3-train:
|. [ ] left argument ([) out of the results of reverse (|.) and identity (])
which is reverse
RProgN 2, 2 bytes
pi
There's a joke to be made about π here, but I can't find it.
wi can be used instead, which doesn't include a trailing newline.
Explained
pi
p | [p]rint the top of the stack, popping.
i | [i]nverse the top of the stack, doing nothing.
denialpxE
ip
i | [i]nverse the top of the stack
p | [p]rint the top of the stack, popping.
TypeScript's Type System, 84 bytes
Same comment out the opposite code trick.
Forwards:
type F<S>=S//V:>`}gnirts&V{$}C{$`,R<F?`}R refni{$}C refni{$`sdnetxe S=>""=V,S<F epyt
Try it at the TypeScript playground!
Backwards:
type F<S,V="">=S extends`${infer C}${infer R}`?F<R,`${C}${V&string}`>:V//S=>S<F epyt
Python 3.11, 35 bytes
A full program, not just a lambda.
print(input())#)]1-::[)(tupni(tnirp
print(input()[::-1])#))(tupni(tnirp
Raku, 9 bytes
~*#pilf.*
This seems too trivial for a Try It Online link...
# is the comment character. Forwards, ~* is an anonymous function that stringifies its argument. Backwards, *.flip is another anonymous function that calls the flip method on its argument, which reverses strings, or the string representation of objects implicitly convertible to strings (numbers, etc).
Stack Exchange, 2 bytes
EP
Reversed:
PE
Sadly, there is no online interpreter, especially since this language is still a work in progress (although P and E are two of the commands I've finalized).
Stack Exchange is a language that resolves around stacks. It is a stack-based language where the only data structure is a stack. A string is represented as a stack of characters, and a character is represented by a stack of empty stacks where the length represents a codepoint.
The E command encloses all elements of the main stack in a stack and pushes that stack onto the main stack. The P dumps all elements of the top stack onto the main stack in reverse. P does this in reverse because it's easier to make it stack-safe that way, but I didn't realize until now that it's perfect for this challenge. Whereas PE dumps the input onto the stack in reverse and bundles it back up in a stack so it can be returned, EP encloses the input in a singleton stack and then unwraps it again, making no change.
As an example, running EP on the input { {{}{}{}} {} {{}{}} {{}} {} } returns the same stack back, whereas running PE returns { { {} {{}} {{}{}} {} {{}{}{}} } }. { {{}{}{}} {} {{}{}} {{}} {} } represents the string made of the characters \u0003, \u0000, \u0002, \u0001, and \u0000.
Pxem, 29 bytes (Filename) + 0 bytes (Content) = 29 bytes, syntaxically not valid.
- Filename (escaped some):
.w.o.i.c\001.+.a.d.p.a.+.\001c.i.w.- Reversed:
.w.i.c\001.+.a.p.d.a.+.\001c.i.o.w.
- Reversed:
- Content: empty
How it works
Original
As in this, except with .d: exiting/returning command. Since pxemi.2.min.posixism automatically removes deadcode, the code after that will be ignored, even .a comes before .w (which is syntax error).
Reversed
Since Pxem is stack-oriented, not outputting any characters until EOF would produce input reversed. Then .p outputs from top to bottom, which is in reverse order compared from original input.
TIO links
Pxem, 39 bytes (Filename) + 0 bytes (Content) = 39 bytes, syntaxically safe.
- Filename:
.w?.s.o.i.c\001.+.a?.d.p.s.?a.+.\001c.i.s.?w.- Reversed:
.w?.s.i.c\001.+.a?.s.p.d.?a.+.\001c.i.o.s.?w.
- Reversed:
VBA, 23 bytes
?[A1]')]1A[(esreveRrtS?
Input is in cell A1 of the active sheet. Code must be run from the immediate window. It's a simple implementation where a backtick indicates the rest of the line is a comment.
BRASCA (brasca-online), 5 bytes
The broken loops crash the Python-based interpreter, but it works on brasca-online.
,[o],
,]o[,
Explanation
, - Reverses stack (1,2,3 => 3,2,1)
[o] - Output stack one by one (3,2,1 => empty)
, - Reverse it again (empty => empty)
Reversed:
, - Reverses stack (1,2,3 => 3,2,1)
]o[ - Broken loops, output top of stack (3,2,1 => 3,2 )
, - Reverses it again (3,2 => 2,3 )
- Implicit output the stack reversed (2,3 => empty)
Google Sheets, 69
Forward:
=A1&T(N("(N^1,))1A(NEL(ECNEUQES-)1A(NEL+1,1A(DIM((alumroFyarrA,(NIOJ=
Backward:
=JOIN(,ArrayFormula((MID(A1,1+LEN(A1)-SEQUENCE(LEN(A1)),1^N("(N(T&1A=
Easy enough. Google Sheets auto-closes quotes and parens.
T(<number>) is always an empty string. N("...") is always 0.
MAWP, 12 bytes
%|0~[;]~0~|%
It would have been cute to have a palindromic solution.
The program inserts a zero at the end of the string and prints it normally, or it does the opposite. Try it!
Turing Machine Language, 14324 14321 13257 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
I used this site to reverse it.
APL (Dyalog Unicode), 3 2 bytesSBCS
-1 byte thanks to dzaima
⌽⊂
⊂ 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.
⌽ reverse (has no effect on singletons): [1,2,3] → [3,2,1]
⊂ enclose: [3,2,1] → [[3,2,1]]
An enclosed array prints with a leading an a trailing space.
x86 opcode, 19 bytes
85 c9 7e 0e 49 8a 06 8a 24 0e 88 26 88 04 0e 46 e2 ee c3
17 bytes
f: cmp esi, edi
jae ok
dec edi
mov al, [esi]
mov ah, [edi]
mov [esi], ah
mov [edi], al
inc esi
jmp f
ok: ret
input esi(begin) and edi(end)
Keg, 3 2 bytes
#?
Try it online! or !enilno ti yrT
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
^#?
Try it online! Or !enilno ti yrT
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
W, 2 bytes
Pretty much the same as the 05AB1E solution.
a_
Explanation
a % Push the input
_ % Reverse the input
% Implicit print the top of the stack
noitanalpxE
_ % Reverse the implicit input
a % Push the input
% Implicit print the top of the stack
C (gcc), 56 bytes
Nothing fancy. Would have used puts() but then trailing whitespace would not have been consistent between the two variants.
f(int*s){printf(s);}//};))1+s(f,s*(rahctup&&s*{)s*rahc(f
f(char*s){*s&&putchar(*s,f(s+1));}//};)s(ftnirp{)s*tni(f
Gaia, 2 bytes
pv
Very similar solution to other golfing languages.
Explanation
p Print the (implicitly grabbed) input
v Reverse the input
Reverse
v Reverse the (implicitly grabbed) input
p Print the result
J, 7 bytes
,&.|:@]
Reversed:
]@:|.&,
Jonah's comment on Adam's APL answer made me take the challenge. It was pretty hard indeed, because the inflections . and : always attach to the symbol on their left, and a sole | (abstract value) isn't happy with strings.
How these work
Basically, it is a random mix of no-ops connected through various connectors.
,&.|:@]
@] Pass the argument unchanged
&.|: Apply inverse of |: (transpose), no-op on single string
, Ravel, no-op on a single string
&.|: Apply |: again, still no-op
]@:|.&,
&, Ravel, no-op
@:|. Reverse
] Pass the argument unchanged
This answer is one byte shorter than the trivial comment-abuse:
J, 8 bytes
]NB.BN.|
Reversed:
|.NB.BN]
In J, the in-line comment marker is NB., which is longer than every other language I know of.
Pyth, 5 3 bytes
z_k
-2 bytes by realizing the newline flips around anyways
Explanation:
z # Implicitly print the input
_k # Implicitly print the reversed empty string
Reversed Explanation:
k # Implicitly print the empty string
_z # Implicitly print the reversed input
Kotlin, 15 bytes
My first Kotlin answer, and far shorter than the java equivalent!
s//)(desrever.s
Reversed:
s.reversed()//s
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.
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
Charcoal, 2 bytes
S←
Try it online! Explanation: S implicitly prints the explicit input and ← moves the cursor left (no effect on the final output). Reversed:
←S
Try it online! ← changes the direction of the implicit print of the explicit input S thus reversing the output.
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!
Stack Cats -m, 4 bytes
|>I|
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|
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.
Brain-Flak, 13 bytes
#><}><)><}{({
Forward: Just a comment, so that it just outputs the input
Reversed:
{({}<>)<>}<>#
Move everything to the second stack, so it is reversed.
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).
05AB1E, 2 bytes
RI
Try it online or try it online reversed.
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)
Cubix, 19 bytes
.@o?A^;/|?$oqBA.UW.
Cubified
. @
o ?
A ^ ; / | ? $ o
q B A . U W . .
. .
. .
A^get all the input and enter the loopo?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@.
Cubified
. W
U .
A B q o $ ? | /
; ^ A ? o @ . .
. .
. .
ABqGet all input, reverse and drop TOS to bottom of stacko$?|?output TOS, skip the test and relect back onto test@halt if test if negativeWUqchange lane, u-turn onto drop TOS start of loop
JavaScript, 32 bytes
s=>s//``nioj.)(esrever.]s...[>=s
Reversed:
s=>[...s].reverse().join``//s>=s
Jelly, 2 bytes
Uṛ
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
