What did we forget?

Clash Royale CLAN TAG#URR8PPP
up vote
31
down vote
favorite
Your task is to write a non-empty computer program comprised of some sequence of bytes. If we choose a particular byte in the program and remove all instances of it from the program, the modified program should output the removed byte.
For example if our program were
aabacba
Then bcb would output a, aaaca would need to output b and aababa would output c.
It does not matter what the unmodified program does.
Answers will be scored in bytes with the goal being to minimize the number of bytes.
code-golf source-layout radiation-hardening
 |Â
show 9 more comments
up vote
31
down vote
favorite
Your task is to write a non-empty computer program comprised of some sequence of bytes. If we choose a particular byte in the program and remove all instances of it from the program, the modified program should output the removed byte.
For example if our program were
aabacba
Then bcb would output a, aaaca would need to output b and aababa would output c.
It does not matter what the unmodified program does.
Answers will be scored in bytes with the goal being to minimize the number of bytes.
code-golf source-layout radiation-hardening
4
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
1
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
2
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
15
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
2
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54
 |Â
show 9 more comments
up vote
31
down vote
favorite
up vote
31
down vote
favorite
Your task is to write a non-empty computer program comprised of some sequence of bytes. If we choose a particular byte in the program and remove all instances of it from the program, the modified program should output the removed byte.
For example if our program were
aabacba
Then bcb would output a, aaaca would need to output b and aababa would output c.
It does not matter what the unmodified program does.
Answers will be scored in bytes with the goal being to minimize the number of bytes.
code-golf source-layout radiation-hardening
Your task is to write a non-empty computer program comprised of some sequence of bytes. If we choose a particular byte in the program and remove all instances of it from the program, the modified program should output the removed byte.
For example if our program were
aabacba
Then bcb would output a, aaaca would need to output b and aababa would output c.
It does not matter what the unmodified program does.
Answers will be scored in bytes with the goal being to minimize the number of bytes.
code-golf source-layout radiation-hardening
asked Sep 5 at 22:06
W W
33.4k10146346
33.4k10146346
4
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
1
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
2
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
15
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
2
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54
 |Â
show 9 more comments
4
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
1
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
2
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
15
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
2
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54
4
4
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
1
1
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
2
2
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
15
15
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
2
2
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54
 |Â
show 9 more comments
7 Answers
7
active
oldest
votes
up vote
68
down vote
zsh, 603 594 566 561 548 440 415 399 378 370 bytes
ec
ho \n;ca t<<<$'x20';exi t
d$c -e8BC6P
d0c -eKp
$'172163150' $'55143' $'146157162 v 151156 17343565613417517573173 146147162145160 55161 $166 '$0$'174174747474$16673175'
$'145v141154' $':73724646145170151164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ^_`jklmsuwy
0# $#;for b in $..z;
Depends on coreutils + dc.
Try it online!
That was... a journey.
This answer has three parts. The first 4 lines handle certain special cases to simplify the code that follows. The next 2 lines and the last line both accomplish essentially the same thing, but exactly one is run with any given character removal. They are written with mostly complementary character sets, so that removing any character breaks only one at most, allowing the other to continue to function.
Looking at the first part, we first handle
- newline removal with
ecnho \n - space removal with
ca t<<<$'x20'(followed byexi tto avoid running later code, which would result in extraneous output) $removal withd$c -e8BC6P(8BC6=9226is36*256 + 10, and 36 and 10 are the byte values of the$and newline characters respectively; we use hex digits in decimal to avoid having to include them in the large comment in line 6)0removal withd0c -eKp(Kgets the decimal precision, which is0by default)
In the next part, the only characters used (aside from the garbage at the end of the second line) are $'1234567v;, space, and newline. Of these, four have been accounted for, so the remainder ('1234567v) cannot occur in the last line. Expanding the octal escapes ($'123' represents the ASCII character with value 1238), we get:
zsh -c 'for v in #..};'
eval ':;:&&exit'
The first line loops through all characters used in the program and searches for each one in its own source code ($0 is the filename of the script being run), printing any character that is not found.
The second line looks a little strange, and appears to do the same thing as exit with a bunch of nops. However, encoding exit as octal directly results in $'145170151164', which does not contain 2 or 3. We actually need to make this less resilient to removals. This is because if any of '14567v are removed, breaking the first line, the second line also breaks, allowing the remainder of the code to execute. However, we need it to also break if 2 or 3 are removed so that lines 3 and 4 can run. This is accomplished by shoehorning in : and ;, which have a 2 and 3 in their octal representation respectively.
The junk at the end of line 2 is simply there to ensure every printable ASCII character appears at least once, as the way the checking is done by looping through each one requires this.
If exit was not called in the first section (i.e. it was mangled by the removal of one of '1234567v), we move on to the second, in which we must accomplish the same thing without using any of these characters. The last line is similar to the decoded first line, except that we can contract the range of the loop to save a few bytes, because we already know that all characters except for '1234567v have been covered. It also has 0# $# before it, which comments it out and prevents it from producing extraneous output if 0 or $ were removed.
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
add a comment |Â
up vote
22
down vote
Retina, 1 byte
1
Try it online!
When all instances of the single byte (1) are removed, the output is 1. Simple enough.
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs1for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
â Conor O'Brien
1 hour ago
add a comment |Â
up vote
9
down vote
Jelly, 1 byte
0
Completely different from the Retina answer. whistles
Try it online!
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
add a comment |Â
up vote
8
down vote
Polyglot*, 1 byte (awaiting confirmation)
0
Try it online! (using Triangularity)
*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different â Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.
add a comment |Â
up vote
8
down vote
Lenguage, 216173027061157310 bytes
216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.
The 144115617572598740 #s and spaces encode the following BF program:
++++++[>++++++<-]>.
Try it online!
The 144115241762960340 $s and spaces encode the following BF program:
+++++++[>+++++<-]>.
Try it online!
The 144115194786755540 $s and #s encode the following BF program:
++++++++[>++++<-]>.
Try it online!
Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.
Why not useUand byte 127? Try it online! Or even just the nul byte and soh?
â Jo King
Sep 7 at 9:47
@JoKing I didn't know thatUwas the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
add a comment |Â
up vote
2
down vote
sed, 1 byte
Try it online!
Completely different from the Retina answer, or the Jelly answer.
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
add a comment |Â
up vote
1
down vote
Unary (non-competitive), 96 bytes
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101 ................
Here is xxd dump.
A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
add a comment |Â
7 Answers
7
active
oldest
votes
7 Answers
7
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
68
down vote
zsh, 603 594 566 561 548 440 415 399 378 370 bytes
ec
ho \n;ca t<<<$'x20';exi t
d$c -e8BC6P
d0c -eKp
$'172163150' $'55143' $'146157162 v 151156 17343565613417517573173 146147162145160 55161 $166 '$0$'174174747474$16673175'
$'145v141154' $':73724646145170151164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ^_`jklmsuwy
0# $#;for b in $..z;
Depends on coreutils + dc.
Try it online!
That was... a journey.
This answer has three parts. The first 4 lines handle certain special cases to simplify the code that follows. The next 2 lines and the last line both accomplish essentially the same thing, but exactly one is run with any given character removal. They are written with mostly complementary character sets, so that removing any character breaks only one at most, allowing the other to continue to function.
Looking at the first part, we first handle
- newline removal with
ecnho \n - space removal with
ca t<<<$'x20'(followed byexi tto avoid running later code, which would result in extraneous output) $removal withd$c -e8BC6P(8BC6=9226is36*256 + 10, and 36 and 10 are the byte values of the$and newline characters respectively; we use hex digits in decimal to avoid having to include them in the large comment in line 6)0removal withd0c -eKp(Kgets the decimal precision, which is0by default)
In the next part, the only characters used (aside from the garbage at the end of the second line) are $'1234567v;, space, and newline. Of these, four have been accounted for, so the remainder ('1234567v) cannot occur in the last line. Expanding the octal escapes ($'123' represents the ASCII character with value 1238), we get:
zsh -c 'for v in #..};'
eval ':;:&&exit'
The first line loops through all characters used in the program and searches for each one in its own source code ($0 is the filename of the script being run), printing any character that is not found.
The second line looks a little strange, and appears to do the same thing as exit with a bunch of nops. However, encoding exit as octal directly results in $'145170151164', which does not contain 2 or 3. We actually need to make this less resilient to removals. This is because if any of '14567v are removed, breaking the first line, the second line also breaks, allowing the remainder of the code to execute. However, we need it to also break if 2 or 3 are removed so that lines 3 and 4 can run. This is accomplished by shoehorning in : and ;, which have a 2 and 3 in their octal representation respectively.
The junk at the end of line 2 is simply there to ensure every printable ASCII character appears at least once, as the way the checking is done by looping through each one requires this.
If exit was not called in the first section (i.e. it was mangled by the removal of one of '1234567v), we move on to the second, in which we must accomplish the same thing without using any of these characters. The last line is similar to the decoded first line, except that we can contract the range of the loop to save a few bytes, because we already know that all characters except for '1234567v have been covered. It also has 0# $# before it, which comments it out and prevents it from producing extraneous output if 0 or $ were removed.
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
add a comment |Â
up vote
68
down vote
zsh, 603 594 566 561 548 440 415 399 378 370 bytes
ec
ho \n;ca t<<<$'x20';exi t
d$c -e8BC6P
d0c -eKp
$'172163150' $'55143' $'146157162 v 151156 17343565613417517573173 146147162145160 55161 $166 '$0$'174174747474$16673175'
$'145v141154' $':73724646145170151164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ^_`jklmsuwy
0# $#;for b in $..z;
Depends on coreutils + dc.
Try it online!
That was... a journey.
This answer has three parts. The first 4 lines handle certain special cases to simplify the code that follows. The next 2 lines and the last line both accomplish essentially the same thing, but exactly one is run with any given character removal. They are written with mostly complementary character sets, so that removing any character breaks only one at most, allowing the other to continue to function.
Looking at the first part, we first handle
- newline removal with
ecnho \n - space removal with
ca t<<<$'x20'(followed byexi tto avoid running later code, which would result in extraneous output) $removal withd$c -e8BC6P(8BC6=9226is36*256 + 10, and 36 and 10 are the byte values of the$and newline characters respectively; we use hex digits in decimal to avoid having to include them in the large comment in line 6)0removal withd0c -eKp(Kgets the decimal precision, which is0by default)
In the next part, the only characters used (aside from the garbage at the end of the second line) are $'1234567v;, space, and newline. Of these, four have been accounted for, so the remainder ('1234567v) cannot occur in the last line. Expanding the octal escapes ($'123' represents the ASCII character with value 1238), we get:
zsh -c 'for v in #..};'
eval ':;:&&exit'
The first line loops through all characters used in the program and searches for each one in its own source code ($0 is the filename of the script being run), printing any character that is not found.
The second line looks a little strange, and appears to do the same thing as exit with a bunch of nops. However, encoding exit as octal directly results in $'145170151164', which does not contain 2 or 3. We actually need to make this less resilient to removals. This is because if any of '14567v are removed, breaking the first line, the second line also breaks, allowing the remainder of the code to execute. However, we need it to also break if 2 or 3 are removed so that lines 3 and 4 can run. This is accomplished by shoehorning in : and ;, which have a 2 and 3 in their octal representation respectively.
The junk at the end of line 2 is simply there to ensure every printable ASCII character appears at least once, as the way the checking is done by looping through each one requires this.
If exit was not called in the first section (i.e. it was mangled by the removal of one of '1234567v), we move on to the second, in which we must accomplish the same thing without using any of these characters. The last line is similar to the decoded first line, except that we can contract the range of the loop to save a few bytes, because we already know that all characters except for '1234567v have been covered. It also has 0# $# before it, which comments it out and prevents it from producing extraneous output if 0 or $ were removed.
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
add a comment |Â
up vote
68
down vote
up vote
68
down vote
zsh, 603 594 566 561 548 440 415 399 378 370 bytes
ec
ho \n;ca t<<<$'x20';exi t
d$c -e8BC6P
d0c -eKp
$'172163150' $'55143' $'146157162 v 151156 17343565613417517573173 146147162145160 55161 $166 '$0$'174174747474$16673175'
$'145v141154' $':73724646145170151164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ^_`jklmsuwy
0# $#;for b in $..z;
Depends on coreutils + dc.
Try it online!
That was... a journey.
This answer has three parts. The first 4 lines handle certain special cases to simplify the code that follows. The next 2 lines and the last line both accomplish essentially the same thing, but exactly one is run with any given character removal. They are written with mostly complementary character sets, so that removing any character breaks only one at most, allowing the other to continue to function.
Looking at the first part, we first handle
- newline removal with
ecnho \n - space removal with
ca t<<<$'x20'(followed byexi tto avoid running later code, which would result in extraneous output) $removal withd$c -e8BC6P(8BC6=9226is36*256 + 10, and 36 and 10 are the byte values of the$and newline characters respectively; we use hex digits in decimal to avoid having to include them in the large comment in line 6)0removal withd0c -eKp(Kgets the decimal precision, which is0by default)
In the next part, the only characters used (aside from the garbage at the end of the second line) are $'1234567v;, space, and newline. Of these, four have been accounted for, so the remainder ('1234567v) cannot occur in the last line. Expanding the octal escapes ($'123' represents the ASCII character with value 1238), we get:
zsh -c 'for v in #..};'
eval ':;:&&exit'
The first line loops through all characters used in the program and searches for each one in its own source code ($0 is the filename of the script being run), printing any character that is not found.
The second line looks a little strange, and appears to do the same thing as exit with a bunch of nops. However, encoding exit as octal directly results in $'145170151164', which does not contain 2 or 3. We actually need to make this less resilient to removals. This is because if any of '14567v are removed, breaking the first line, the second line also breaks, allowing the remainder of the code to execute. However, we need it to also break if 2 or 3 are removed so that lines 3 and 4 can run. This is accomplished by shoehorning in : and ;, which have a 2 and 3 in their octal representation respectively.
The junk at the end of line 2 is simply there to ensure every printable ASCII character appears at least once, as the way the checking is done by looping through each one requires this.
If exit was not called in the first section (i.e. it was mangled by the removal of one of '1234567v), we move on to the second, in which we must accomplish the same thing without using any of these characters. The last line is similar to the decoded first line, except that we can contract the range of the loop to save a few bytes, because we already know that all characters except for '1234567v have been covered. It also has 0# $# before it, which comments it out and prevents it from producing extraneous output if 0 or $ were removed.
zsh, 603 594 566 561 548 440 415 399 378 370 bytes
ec
ho \n;ca t<<<$'x20';exi t
d$c -e8BC6P
d0c -eKp
$'172163150' $'55143' $'146157162 v 151156 17343565613417517573173 146147162145160 55161 $166 '$0$'174174747474$16673175'
$'145v141154' $':73724646145170151164';#%&()*+,/9=>?@ADEFGHIJLMNOQRSTUVWXYZ^_`jklmsuwy
0# $#;for b in $..z;
Depends on coreutils + dc.
Try it online!
That was... a journey.
This answer has three parts. The first 4 lines handle certain special cases to simplify the code that follows. The next 2 lines and the last line both accomplish essentially the same thing, but exactly one is run with any given character removal. They are written with mostly complementary character sets, so that removing any character breaks only one at most, allowing the other to continue to function.
Looking at the first part, we first handle
- newline removal with
ecnho \n - space removal with
ca t<<<$'x20'(followed byexi tto avoid running later code, which would result in extraneous output) $removal withd$c -e8BC6P(8BC6=9226is36*256 + 10, and 36 and 10 are the byte values of the$and newline characters respectively; we use hex digits in decimal to avoid having to include them in the large comment in line 6)0removal withd0c -eKp(Kgets the decimal precision, which is0by default)
In the next part, the only characters used (aside from the garbage at the end of the second line) are $'1234567v;, space, and newline. Of these, four have been accounted for, so the remainder ('1234567v) cannot occur in the last line. Expanding the octal escapes ($'123' represents the ASCII character with value 1238), we get:
zsh -c 'for v in #..};'
eval ':;:&&exit'
The first line loops through all characters used in the program and searches for each one in its own source code ($0 is the filename of the script being run), printing any character that is not found.
The second line looks a little strange, and appears to do the same thing as exit with a bunch of nops. However, encoding exit as octal directly results in $'145170151164', which does not contain 2 or 3. We actually need to make this less resilient to removals. This is because if any of '14567v are removed, breaking the first line, the second line also breaks, allowing the remainder of the code to execute. However, we need it to also break if 2 or 3 are removed so that lines 3 and 4 can run. This is accomplished by shoehorning in : and ;, which have a 2 and 3 in their octal representation respectively.
The junk at the end of line 2 is simply there to ensure every printable ASCII character appears at least once, as the way the checking is done by looping through each one requires this.
If exit was not called in the first section (i.e. it was mangled by the removal of one of '1234567v), we move on to the second, in which we must accomplish the same thing without using any of these characters. The last line is similar to the decoded first line, except that we can contract the range of the loop to save a few bytes, because we already know that all characters except for '1234567v have been covered. It also has 0# $# before it, which comments it out and prevents it from producing extraneous output if 0 or $ were removed.
edited Sep 7 at 0:31
answered Sep 6 at 3:21
Doorknobâ¦
53.4k16111339
53.4k16111339
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
add a comment |Â
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
5
5
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
Wow, very impressive considering the amount of distinct characters involved! Definitely looking forward seeing that explanation.
â Kevin Cruijssen
Sep 6 at 7:28
3
3
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@KevinCruijssen here you go :)
â Doorknobâ¦
Sep 6 at 13:35
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
@Doorknob if this doesn't win you 548 internets, I don't know what does. Honestly, the 603 byte version is just as impressive hah!
â Magic Octopus Urn
Sep 6 at 16:09
3
3
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
The only interesting answer so far.
â htmlcoderexe
Sep 7 at 19:00
add a comment |Â
up vote
22
down vote
Retina, 1 byte
1
Try it online!
When all instances of the single byte (1) are removed, the output is 1. Simple enough.
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs1for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
â Conor O'Brien
1 hour ago
add a comment |Â
up vote
22
down vote
Retina, 1 byte
1
Try it online!
When all instances of the single byte (1) are removed, the output is 1. Simple enough.
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs1for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
â Conor O'Brien
1 hour ago
add a comment |Â
up vote
22
down vote
up vote
22
down vote
Retina, 1 byte
1
Try it online!
When all instances of the single byte (1) are removed, the output is 1. Simple enough.
Retina, 1 byte
1
Try it online!
When all instances of the single byte (1) are removed, the output is 1. Simple enough.
answered Sep 5 at 23:21
Conor O'Brien
28.3k262157
28.3k262157
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs1for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
â Conor O'Brien
1 hour ago
add a comment |Â
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs1for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.
â Conor O'Brien
1 hour ago
6
6
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
I was browsing TIO to find something like this - you beat me to it. Btw this is a polyglot, works with Snails
â JayCe
Sep 5 at 23:43
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
IMO, this answer should be upgraded to a polyglot answer as the first one (possibly with a forever-incomplete list of languages), and the other two downvoted to oblivion. Oh, and this also works in C.
â Rogem
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs
1 for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.â Conor O'Brien
1 hour ago
@Rogem I'm not sure what you mean by "this works in C." do you have a C compiler which outputs
1 for the empty program? Regardless, I think the answers in question utilize different approaches and behaviours. IMO a polyglot answer is only warranted if the approach remains the same. (Objectively, this isn't a polyglot as the actual code is different, for the answers below.) Feel free to vote how you want, but a valid answer is a valid answer. I will keep my answer as it is, I don't wish to house a collection of answers on it.â Conor O'Brien
1 hour ago
add a comment |Â
up vote
9
down vote
Jelly, 1 byte
0
Completely different from the Retina answer. whistles
Try it online!
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
add a comment |Â
up vote
9
down vote
Jelly, 1 byte
0
Completely different from the Retina answer. whistles
Try it online!
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
add a comment |Â
up vote
9
down vote
up vote
9
down vote
Jelly, 1 byte
0
Completely different from the Retina answer. whistles
Try it online!
Jelly, 1 byte
0
Completely different from the Retina answer. whistles
Try it online!
answered Sep 6 at 3:28
Dennisâ¦
182k32291722
182k32291722
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
add a comment |Â
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
6
6
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
Polyglot with M and Enlist.
â Mr. Xcoder
Sep 6 at 5:59
add a comment |Â
up vote
8
down vote
Polyglot*, 1 byte (awaiting confirmation)
0
Try it online! (using Triangularity)
*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different â Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.
add a comment |Â
up vote
8
down vote
Polyglot*, 1 byte (awaiting confirmation)
0
Try it online! (using Triangularity)
*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different â Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.
add a comment |Â
up vote
8
down vote
up vote
8
down vote
Polyglot*, 1 byte (awaiting confirmation)
0
Try it online! (using Triangularity)
*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different â Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.
Polyglot*, 1 byte (awaiting confirmation)
0
Try it online! (using Triangularity)
*: This works in a (rather wide) variety of languages (except for esolangs like 4, ><> and the like and some other exceptions). Identical to the Jelly answer in source code, but the method of I/O is different â Output is via exit code. When one removes 0 from the source code, they're left with an empty program, which often doesn't error and yields exit code 0 in the majority of languages.
edited Sep 6 at 16:31
answered Sep 6 at 6:10
Mr. Xcoder
30.3k758193
30.3k758193
add a comment |Â
add a comment |Â
up vote
8
down vote
Lenguage, 216173027061157310 bytes
216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.
The 144115617572598740 #s and spaces encode the following BF program:
++++++[>++++++<-]>.
Try it online!
The 144115241762960340 $s and spaces encode the following BF program:
+++++++[>+++++<-]>.
Try it online!
The 144115194786755540 $s and #s encode the following BF program:
++++++++[>++++<-]>.
Try it online!
Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.
Why not useUand byte 127? Try it online! Or even just the nul byte and soh?
â Jo King
Sep 7 at 9:47
@JoKing I didn't know thatUwas the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
add a comment |Â
up vote
8
down vote
Lenguage, 216173027061157310 bytes
216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.
The 144115617572598740 #s and spaces encode the following BF program:
++++++[>++++++<-]>.
Try it online!
The 144115241762960340 $s and spaces encode the following BF program:
+++++++[>+++++<-]>.
Try it online!
The 144115194786755540 $s and #s encode the following BF program:
++++++++[>++++<-]>.
Try it online!
Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.
Why not useUand byte 127? Try it online! Or even just the nul byte and soh?
â Jo King
Sep 7 at 9:47
@JoKing I didn't know thatUwas the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
add a comment |Â
up vote
8
down vote
up vote
8
down vote
Lenguage, 216173027061157310 bytes
216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.
The 144115617572598740 #s and spaces encode the following BF program:
++++++[>++++++<-]>.
Try it online!
The 144115241762960340 $s and spaces encode the following BF program:
+++++++[>+++++<-]>.
Try it online!
The 144115194786755540 $s and #s encode the following BF program:
++++++++[>++++<-]>.
Try it online!
Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.
Lenguage, 216173027061157310 bytes
216173027061157310 = (144115617572598740 + 144115241762960340 + 144115194786755540) / 2. There are 216173027061157310 - 144115617572598740 $s, 216173027061157310 - 144115241762960340 #s and 216173027061157310 - 144115194786755540 spaces.
The 144115617572598740 #s and spaces encode the following BF program:
++++++[>++++++<-]>.
Try it online!
The 144115241762960340 $s and spaces encode the following BF program:
+++++++[>+++++<-]>.
Try it online!
The 144115194786755540 $s and #s encode the following BF program:
++++++++[>++++<-]>.
Try it online!
Edit: Saved 72057832274401770 bytes thanks to @Nitrodon.
edited Sep 8 at 11:21
answered Sep 7 at 8:26
Neil
75.1k744170
75.1k744170
Why not useUand byte 127? Try it online! Or even just the nul byte and soh?
â Jo King
Sep 7 at 9:47
@JoKing I didn't know thatUwas the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
add a comment |Â
Why not useUand byte 127? Try it online! Or even just the nul byte and soh?
â Jo King
Sep 7 at 9:47
@JoKing I didn't know thatUwas the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.
â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
Why not use
U and byte 127? Try it online! Or even just the nul byte and soh?â Jo King
Sep 7 at 9:47
Why not use
U and byte 127? Try it online! Or even just the nul byte and soh?â Jo King
Sep 7 at 9:47
@JoKing I didn't know that
U was the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.â Neil
Sep 7 at 10:51
@JoKing I didn't know that
U was the shortest printable ASCII byte that could be output. I didn't want to use unprintable bytes.â Neil
Sep 7 at 10:51
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
Even without taking advantage of wrapping cells or unprintable characters, you can get this down to 216173027061157310 bytes by including the space character as a third distinct byte.
â Nitrodon
Sep 7 at 18:46
5
5
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
I can't help but upvote because of "Edit: Saved 72057832274401770 bytes..."
â Mr Lister
Sep 8 at 11:41
add a comment |Â
up vote
2
down vote
sed, 1 byte
Try it online!
Completely different from the Retina answer, or the Jelly answer.
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
add a comment |Â
up vote
2
down vote
sed, 1 byte
Try it online!
Completely different from the Retina answer, or the Jelly answer.
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
add a comment |Â
up vote
2
down vote
up vote
2
down vote
sed, 1 byte
Try it online!
Completely different from the Retina answer, or the Jelly answer.
sed, 1 byte
Try it online!
Completely different from the Retina answer, or the Jelly answer.
answered Sep 6 at 8:40
tsh
7,0701941
7,0701941
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
add a comment |Â
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
I don't see any code. Wouldn't that make it a 0 byte answer? How does this work?
â Mast
Sep 6 at 10:06
13
13
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
@Mast There is a newline..... you will have difficulty reading programs written in Whitespace if you keep thinking like that.
â user202729
Sep 6 at 10:14
add a comment |Â
up vote
1
down vote
Unary (non-competitive), 96 bytes
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101 ................
Here is xxd dump.
A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
add a comment |Â
up vote
1
down vote
Unary (non-competitive), 96 bytes
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101 ................
Here is xxd dump.
A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
add a comment |Â
up vote
1
down vote
up vote
1
down vote
Unary (non-competitive), 96 bytes
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101 ................
Here is xxd dump.
A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.
Unary (non-competitive), 96 bytes
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0101 0101 0101 0101 0101 0101 ................
Here is xxd dump.
A wider definition of Unary language allows any characters in its source code. But I havn't find a compiler or interpreter which would work for this. So I marked this answer as non-competitive. If you can find one which posted before this question asked, I will link to it.
answered Sep 7 at 7:31
tsh
7,0701941
7,0701941
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
add a comment |Â
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
1
1
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
This is the smallest Unary program I've ever seen.
â Draco18s
2 days ago
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f171789%2fwhat-did-we-forget%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password

4
Since this challenge isn't tagged quine, may we read our own source code?
â Dennisâ¦
Sep 5 at 22:56
1
@Dennis Sure. Be my guest
â W W
Sep 5 at 23:12
2
If all the bytes in our program represent digits, may we output via exit code?
â Mr. Xcoder
Sep 6 at 6:04
15
I think this would be better as a code challenge where you have to maximise the number of discrete characters used.
â Notts90
Sep 6 at 11:07
2
Should've specified more than 1 byte instead of non-empty :P. Or what Notts90 said.
â Magic Octopus Urn
Sep 6 at 13:54