79
\$\begingroup\$

Super simple challenge today, or is it?

I feel like we've heard a fair bit about double speak recently, well let's define it in a codable way...

Double speak is when each and every character in a string of text is immediately repeated. For example:

"DDoouubbllee  ssppeeaakk!!"

The Rules

  • Write code which accepts one argument, a string.
  • It will modify this string, duplicating every character.
  • Then it will return the double speak version of the string.
  • It's code golf, try to achieve this in the smallest number of bytes.
  • Please include a link to an online interpreter for your code.
  • Input strings will only contain characters in the printable ASCII range. Reference: http://www.asciitable.com/mobile/

Leaderboards

Here is a Stack Snippet to generate both a regular leaderboard and an overview of winners by language.

var QUESTION_ID=188988;
var OVERRIDE_USER=53748;
var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(d){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(d,e){return"https://api.stackexchange.com/2.2/answers/"+e.join(";")+"/comments?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){answers.push.apply(answers,d.items),answers_hash=[],answer_ids=[],d.items.forEach(function(e){e.comments=[];var f=+e.share_link.match(/\d+/);answer_ids.push(f),answers_hash[f]=e}),d.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){d.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),d.has_more?getComments():more_answers?getAnswers():process()}})}getAnswers();var SCORE_REG=function(){var d=String.raw`h\d`,e=String.raw`\-?\d+\.?\d*`,f=String.raw`[^\n<>]*`,g=String.raw`<s>${f}</s>|<strike>${f}</strike>|<del>${f}</del>`,h=String.raw`[^\n\d<>]*`,j=String.raw`<[^\n<>]+>`;return new RegExp(String.raw`<${d}>`+String.raw`\s*([^\n,]*[^\s,]),.*?`+String.raw`(${e})`+String.raw`(?=`+String.raw`${h}`+String.raw`(?:(?:${g}|${j})${h})*`+String.raw`</${d}>`+String.raw`)`)}(),OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(d){return d.owner.display_name}function process(){var d=[];answers.forEach(function(n){var o=n.body;n.comments.forEach(function(q){OVERRIDE_REG.test(q.body)&&(o="<h1>"+q.body.replace(OVERRIDE_REG,"")+"</h1>")});var p=o.match(SCORE_REG);p&&d.push({user:getAuthorName(n),size:+p[2],language:p[1],link:n.share_link})}),d.sort(function(n,o){var p=n.size,q=o.size;return p-q});var e={},f=1,g=null,h=1;d.forEach(function(n){n.size!=g&&(h=f),g=n.size,++f;var o=jQuery("#answer-template").html();o=o.replace("{{PLACE}}",h+".").replace("{{NAME}}",n.user).replace("{{LANGUAGE}}",n.language).replace("{{SIZE}}",n.size).replace("{{LINK}}",n.link),o=jQuery(o),jQuery("#answers").append(o);var p=n.language;p=jQuery("<i>"+n.language+"</i>").text().toLowerCase(),e[p]=e[p]||{lang:n.language,user:n.user,size:n.size,link:n.link,uniq:p}});var j=[];for(var k in e)e.hasOwnProperty(k)&&j.push(e[k]);j.sort(function(n,o){return n.uniq>o.uniq?1:n.uniq<o.uniq?-1:0});for(var l=0;l<j.length;++l){var m=jQuery("#language-template").html(),k=j[l];m=m.replace("{{LANGUAGE}}",k.lang).replace("{{NAME}}",k.user).replace("{{SIZE}}",k.size).replace("{{LINK}}",k.link),m=jQuery(m),jQuery("#languages").append(m)}}
body{text-align:left!important}#answer-list{padding:10px;float:left}#language-list{padding:10px;float:left}table thead{font-weight:700}table td{padding:5px}
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/primary.css?v=f52df912b654"> <div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr></tbody> </table> 

To make sure that your answer shows up, please start your answer with a headline, using the following Markdown template:

# Language Name, [Other information] N bytes

where N is the size of your submission. Other information may include flags set and if you've improved your score (usually a struck out number like <s>M</s>). N should be the right-most number in this heading, and everything before the first , is the name of the language you've used. The language name and the word bytes may be links.

For example:

# [><>](http://esolangs.org/wiki/Fish), <s>162</s> 121 [bytes](https://esolangs.org/wiki/Fish#Instructions)
\$\endgroup\$
10
  • 3
    \$\begingroup\$ It will modify this string. Are you intentionally requiring pass-by-reference and modify in-place? And then return a copy or reference to that modified string? If so, languages like asm or C would need to accept an explicit-length string (pointer + length) where the length is either the current string length (with the buffer being twice that size), or it's the total size and you need to duplicate the low half. Thus you need to start from the end and work backwards, or allocate scratch space and then copy back. But there are answers in C and 8086 asm that totally violate all that. \$\endgroup\$ Aug 3 '19 at 1:49
  • 4
    \$\begingroup\$ @PeterCordes I do not care if it modifies the same object or builds a new one. \$\endgroup\$
    – AJFaraday
    Aug 3 '19 at 5:08
  • 3
    \$\begingroup\$ I'd suggest wording it as "modify (or produce a modified copy) of the string" to explicitly allow answers that do or don't modify in-place. Simplifying the wording to "return a string that's twice as long, with each character repeated" would be nice but then it's not clear if void foo(char *c, size_t len) is legal that takes one input/output buffer and a length, and doesn't have any return value, just a side-effect on the object it has a pointer to. \$\endgroup\$ Aug 3 '19 at 5:16
  • \$\begingroup\$ Can the string be empty? \$\endgroup\$ Aug 6 '19 at 19:58
  • 1
    \$\begingroup\$ @cschultz2048 it says the string will only contain printable ascii characters, so that implies that they’ll always be populated. I’d expect that any code for this challenge would leave an empty string empty... anyway, I don’t think it’s a test case that I’d use for this. \$\endgroup\$
    – AJFaraday
    Aug 6 '19 at 22:36

200 Answers 200

1
2
3 4 5
7
5
\$\begingroup\$

Stax, 2 bytes

c\

Run and debug it at staxlang.xyz!

Copy. Zip. Implicit print.

\$\endgroup\$
5
\$\begingroup\$

R, 50 33 bytes

-17 bytes thanks to Giuseppe

function(a)gsub('(.)','\\1\\1',a)

Try it online!

\$\endgroup\$
6
  • 1
    \$\begingroup\$ gsub('(.)','\\1\\1',a)? \$\endgroup\$
    – Giuseppe
    Jul 31 '19 at 15:40
  • \$\begingroup\$ I don't only check CG.SE two seconds after you post, I check all the time, haha, I should probably cut back a little. \$\endgroup\$
    – Giuseppe
    Jul 31 '19 at 15:41
  • \$\begingroup\$ @Giuseppe No idea how that works, but it does. \$\endgroup\$
    – Robert S.
    Jul 31 '19 at 15:42
  • 1
    \$\begingroup\$ Oh, well gsub does regular expression replacement -- replaces a single character match (.) in capture group 1 with two copies of capture group 1 \\1\\1, for all possible matches, as opposed to sub which only does one. \$\endgroup\$
    – Giuseppe
    Jul 31 '19 at 15:43
  • \$\begingroup\$ @Giuseppe Should this be submitted as your own answer since it is a completely different solution than what I came up with? \$\endgroup\$
    – Robert S.
    Jul 31 '19 at 15:45
5
\$\begingroup\$

Retina, 4 bytes


$<&

Try it online!

Matches the empty string (i.e. the position before/after each character) and inserts the string between this and the previous match (which is always exactly the previous character; except for the first match where it does nothing).

\$\endgroup\$
5
\$\begingroup\$

Labyrinth, 11 bytes

,:
"~~."
 @

Try it online!

How?

, - takes a byte from STDIN and pushes its ordinal onto the stack (0-255)
  -                                    unless EOF which pushes -1
: - duplicates the top of the stack [TOS]
~ - bitwise NOT TOS (-1 becomes 0, n becomes -n-1)
  -   4-neighbours: if TOS=0 go forward to @
  -                 if TOS<0 go left to ~
  -                 if TOS>0 go right to " (never the case)
@ - exits the program, otherwise...
~ - bitwise NOT TOS (undoes the effect of the previous ~)
. - print and discard TOS (mod 256) as an ASCII character
" - no-op
  -   We've hit a wall, turn around!
. - print and discard TOS (mod 256) as an ASCII character
~ - bitwise NOT TOS (stack starts with an infinite supply of 0s, so now TOS=-1) 
~ - bitwise NOT TOS (and now TOS=0 again)
  -   4-neighbours, but TOS=0 takes us forward to "
" - no-op
  -   ...and we're back at the starting ,
  -      facing right, with infinite 0s on the stack - just like the start
\$\endgroup\$
5
\$\begingroup\$

Turing Machine But Way Worse, 475 bytes

0 0 0 1 1 0 0 
1 0 1 1 1 0 0
0 1 0 1 2 0 0
1 1 1 1 a 0 0
0 2 0 1 3 0 0
1 2 1 1 b 0 0
0 3 0 1 4 0 0
1 3 1 1 c 0 0
0 4 0 1 5 0 0
1 4 1 1 d 0 0
0 5 0 1 6 0 0
1 5 1 1 e 0 0
0 6 0 1 7 0 0
1 6 1 1 f 0 0
0 7 0 1 g 0 0
1 7 1 1 g 0 0
0 a 0 1 b 0 0
1 a 1 1 b 0 0
0 b 0 1 c 0 0
1 b 1 1 c 0 0
0 c 0 1 d 0 0
1 c 1 1 d 0 0
0 d 0 1 e 0 0
1 d 1 1 e 0 0
0 e 0 1 f 0 0
1 e 1 1 f 0 0
0 f 0 0 h 1 0
1 f 1 0 h 1 0
0 h 0 1 i 1 0
1 h 1 1 i 1 0
0 i 0 1 0 0 0
1 i 1 1 0 0 0
0 g 0 1 g 0 1
1 g 1 1 g 0 1

Trivial modification of this answer

Try it online!

\$\endgroup\$
5
\$\begingroup\$

GolfScript, 7 6 4 bytes

{.}%

[Try it online!][TIO-jyx60w31]

my first golfscript program! Other people's explanations on here were super helpful for me to refer to so I'll type mine out even though its pretty short

{ }        code block
 .         copy the top item of the stack
   %       array map

Try it online!

\$\endgroup\$
1
  • \$\begingroup\$ doesn't this beat other golfscript answers? nicely done \$\endgroup\$ Aug 6 '19 at 6:46
4
\$\begingroup\$

Whitespace, 33 bytes

[N
S S N
_Create_Label_LOOP][S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   S _Read_STDIN_as_integer][T T   T   _Retrieve][S N
S _Duplicate_input][T   N
S S _Output_as_character][T N
S S _Output_as_character][N
S N
N
_Jump_to_Label_LOOP]

Letters S (space), T (tab), and N (new-line) added as highlighting only.
[..._some_action] added as explanation only.

Try it online (with raw spaces, tabs and new-lines only).

Explanation in pseudo-code:

Start LOOP:
  Character c = STDIN as character
  Print c
  Print c
  Go to next iteration of LOOP
\$\endgroup\$
2
  • \$\begingroup\$ This language is Bizzare! \$\endgroup\$
    – AJFaraday
    Aug 2 '19 at 10:27
  • 1
    \$\begingroup\$ @AJFaraday :D It's perfect for some source-code and polyglot tagged challenges, though. ;) And this answer is quite straight-forward tbh. You can take a look at some of my other answers in Whitespace for harder examples. \$\endgroup\$ Aug 2 '19 at 10:42
4
\$\begingroup\$

Brain-Flak, 48 bytes

([]){{}({}<>)<>([])}{}<>([]){{}(({}<>))<>([])}<>

Try it online!

This code has two main sections. The first just reverses the string:

([]){{}({}<>)<>([])}{}<>

The second is nearly identical, it reverses the string and doubles the characters in place

([]){{}(({}<>))<>([])}{}<>

The reason we need to reverse things is that we need to touch every element of the strings in order to make the output. Since Brain-Flak uses a stack model touching each character means popping all of the elements and pushing them. Because of the FIFO manner of a stack this means each time this is done you reverse the string. The reversing issue is not present in Brain-Flueue below.

Brain-Flueue, 28 bytes

([]<>){({}[()])<>(({}))<>}<>

Try it online!

Since queues are first in last out all we need to do in Brain-Flueue is iterate through the entire string doubling every character in place. However this does make it harder to iterate through the entire stack. In Brain-Flak we could just go until the stack height is zero however with a queue, pushing something puts it on the bottom of the queue essentially losing it. Instead we use the second queue to keep track of the number of operations we need. This makes are main loop look like:

([]<>){({}[()])<>...<>}<>

With the contents being the meager

(({}))

Just for fun, both of these answers could get a lot shorter if there were no null bytes in the input (ascii value zero)

Brain-Flak, 26 bytes

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

Try it online!

Brain-Flueue, 14 bytes

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

Try it online!

\$\endgroup\$
1
4
\$\begingroup\$

Befunge-93, 8 bytes

~:1+%:,,

Try it online!

For each character in input, outputs c%(c+1) as a character twice. This makes the program calculate -1%0 on EOF (-1), which terminates it.

\$\endgroup\$
4
\$\begingroup\$

Husk, 3 bytes

ṁR2

Try it online!

\$\endgroup\$
2
  • \$\begingroup\$ The solution I came up with was ṁ´e \$\endgroup\$
    – Jo King
    Oct 2 '20 at 18:23
  • \$\begingroup\$ Ṙ2 is -1 byte. \$\endgroup\$
    – Razetime
    May 16 at 8:37
4
\$\begingroup\$

Flobnar, 11 bytes

\\@
|~
,e
:

Try it online!

This feels golfable.

\$\endgroup\$
1
  • \$\begingroup\$ upvoted for name alone \$\endgroup\$
    – Jonah
    Aug 1 '19 at 2:10
4
\$\begingroup\$

C (gcc), 62 41 bytes

f(char*a){for(;putchar(putchar(*a++)););}

Try it online!

This takes in input as the first arg, and outputs a NULL-terminated string to stdout. Not sure if the NULLs are a big deal. If you read the string properly, you'll stop after the first one ;)

Original without using a footer

\$\endgroup\$
4
\$\begingroup\$

C# (Visual C# Interactive Compiler), 26 bytes

s=>s.SelectMany(c=>c+""+c)

Try it online!

\$\endgroup\$
8
  • 1
    \$\begingroup\$ You could just use s=>s.Select(c=>c+""+c) instead to save 4 bytes \$\endgroup\$ Aug 1 '19 at 2:52
  • 1
    \$\begingroup\$ I considered that, but the signature would be kind of strange, since it is converting from IEnumerable<char> to IEnumerable<string> and other answers had avoided this. \$\endgroup\$
    – dana
    Aug 1 '19 at 3:10
  • \$\begingroup\$ Wait, this answer is actually wrong right now.. The output is a list of 2-char strings, which is neither a string nor list of chars/single-char strings. I.e. "abc" results in ["aa","bb","cc"]. The additional join in the print makes it aabbcc, but that should then be counted towards the byte-count. If ["aa","bb","cc"] would have been an acceptable output, I would have a few 1-byter solutions for my 05AB1E answer.. \$\endgroup\$ Aug 1 '19 at 10:05
  • 2
    \$\begingroup\$ @KevinCruijssen - the output is a list of characters. If you use Select you get a list of 2-character strings. SelectMany flattens each element and connects them. The output is a long list of characters. \$\endgroup\$
    – dana
    Aug 1 '19 at 12:10
  • 1
    \$\begingroup\$ @dana Ah ok, thanks for explaining. Then your code is indeed correct, but ZacFaragher's suggestion would give the incorrect result. Based on your response to him I thought the problem was outputting a list of single-char strings instead of actual chars, in which case you could also use single-char strings as IEnumerable<string> as both in- AND output. Didn't knew SelectMany would flatten in the process. In that case my initial upvote remains (couldn't retract it earlier anyway ;p). \$\endgroup\$ Aug 1 '19 at 12:15
4
\$\begingroup\$

Pepe, 19 bytes

REEerEErReEeReEeree

Try it online!

Explanation:

REEe # Input as str -> (R)
rEE # Create loop labelled 0 -> (r)
  rReEe # Output as char -> (R)
        # r flag: don't pop
  ReEe # Output as char and pop -> (R)
ree # Loop while (R) != 0
\$\endgroup\$
4
\$\begingroup\$

Wolfram Language (Mathematica), 13 11 bytes

-2 thanks to LegionMammal978

#~Riffle~#&

Try it online!

Takes and returns an array of characters.

\$\endgroup\$
1
  • \$\begingroup\$ I believe the more straightforward #~Riffle~#& would be a valid 11-byte solution (taking and returning a character list). \$\endgroup\$ Nov 3 '19 at 14:51
4
\$\begingroup\$

JavaScript (V8), 28 bytes

a=>[...a].map(p=>p+p).join``

Try it online!

\$\endgroup\$
4
\$\begingroup\$

Arn, 5 bytes

|{|}\

Since this is <6 bytes I can't compress it

Explained

      \ Fold with...
| Concatenation after...
  { Mapping...
    | And concatenating _ and _
  } End map

Fold's required input is automatically assumed to be _ (initialized as STDIN). Type casting automatic, output automatic.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ The answer that I can't understand how it works, even after explanation! (Just like Arnauld's explanations) +1 \$\endgroup\$
    – user96495
    Aug 15 '20 at 6:29
4
\$\begingroup\$

Kotlin, 48 35 bytes

35 bytes from 48 bytes thanks to @user

{it.map{"$it$it"}.joinToString("")}

Not much to it, just that it.map() returns a CharArray so you have to joinToString() it.

Kotlin Playground Link(Would've been TIO but TIO has issues with kotlin.)

\$\endgroup\$
4
  • \$\begingroup\$ Welcome to Code Golf! You can also use something like {it.map{"$it$it"}.joinToString("")} (lambdas are allowed according to a meta consensus). \$\endgroup\$
    – rues
    Feb 14 at 22:24
  • 1
    \$\begingroup\$ FYI there's already a few Kotlin solutions. (although we don't prohibit posting your own attempts) codegolf.stackexchange.com/search?q=inquestion%3A188988+Kotlin (I think there's also the graduation userscript that shows a leader board under every questions, but I don't use it myself) cc @user \$\endgroup\$
    – DELETE_ME
    Feb 15 at 10:14
  • \$\begingroup\$ @user202729 Even if we did prohibit duplicate answers, this one's different from the other two, and it could be made shorter than both of them with a lambda. I do agree with you that one should check pre-existing answers first, though. \$\endgroup\$
    – rues
    Feb 15 at 16:23
  • 1
    \$\begingroup\$ @user Thanks for the help, I've edited that in. \$\endgroup\$
    – grian
    Feb 15 at 18:48
4
\$\begingroup\$

Excel, 43 bytes

=CONCAT(MID(A1,SEQUENCE(LEN(A1),2,,0.5),1))

Link to Spreadsheet

\$\endgroup\$
3
\$\begingroup\$

QuadR, 4 bytes

.
&&

Try it online!

. replace each character

&& with itself followed by itself

\$\endgroup\$
3
\$\begingroup\$

Gema, 5 characters

?=?$0

Sample run:

bash-5.0$ gema '?=?$0' <<< 'Double speak!'
DDoouubbllee  ssppeeaakk!!

Try it online!

\$\endgroup\$
3
\$\begingroup\$

T-SQL 2008, 78 bytes

DECLARE @ varchar(max)='Double speak!'

,@z int=1WHILE @z<=len(@)SELECT
@=stuff(@,@z,0,substring(@,@z,1)),@z+=2PRINT @

Try it online

\$\endgroup\$
3
\$\begingroup\$

Standard ML (MLton), 35 bytes

String.translate(fn c=>str c^str c)

Try it online!

The function translate from the String library has the following type:

translate : (char -> string) -> string -> string

Thus, given a function that takes a char c, converts it to a singleton string twice with str c and concatenates both with ^, we get the required functionality.

\$\endgroup\$
3
\$\begingroup\$

Oracle SQL, 43 bytes

select regexp_replace(x,'(.)','\1\1')from t

It works with an assumption that input data is stored in a table t(x), e.g.

with t(x) as (select 'Double speak' from dual)
\$\endgroup\$
3
\$\begingroup\$

Gaia, 1 byte

Z

Try it online!

Z interleaves two strings (or lists); implicitly takes the input as both arguments.

\$\endgroup\$
3
\$\begingroup\$

Factor, 32 bytes

: f ( s -- s ) dup zip "" join ;

Try it online!

\$\endgroup\$
3
\$\begingroup\$

jq (-Rrj), 12 characters

(./"")[]|.+.

Sample run:

bash-5.0$ jq -Rrj '(./"")[]|.+.' <<< 'D0uB!e'
DD00uuBB!!ee

Try it online!

\$\endgroup\$
3
\$\begingroup\$

Red, 43 bytes

func[s][t:""foreach c s[t: rejoin[t c c]]t]

Try it online!

\$\endgroup\$
3
\$\begingroup\$

Z80Golf, 10 bytes

00000000: cd03 8030 0176 ffff 18f6                 ...0.v....

Try it online!

Corresponding assembly:

start:
    call $8003 ; input
    jr nc, no_halt
    halt
no_halt:
    rst $38 ; nop-slide to $8000 - output
    rst $38
    jr start
\$\endgroup\$
3
\$\begingroup\$

Shakespeare Programming Language, 238 164 bytes

,.Ajax,.Puck,.Act I:.Scene I:.[Enter Ajax and Puck]Ajax:Open mind.Let usScene V.Scene V:.Ajax:Be you better than I?If sospeak thy.Speak thy.Open mind.Let usScene V.

Try it online!

Boy, golfing in SPL does seem ugly...

  • Lots of bytes saved after Veskah pointed me to the SPL golfing tips. :-)
\$\endgroup\$
6
  • 2
    \$\begingroup\$ Gotta use Ajax and Puck. You can also omit a ton of non-essential words for big savings, though it does lose some of the SPL charm when you do. \$\endgroup\$
    – Veskah
    Jul 31 '19 at 14:11
  • \$\begingroup\$ An alternative algorithm can be much shorter. \$\endgroup\$
    – NieDzejkob
    Jul 31 '19 at 14:20
  • \$\begingroup\$ @NieDzejkob Nice one, I tried something similar but the interpreter said that my characters were already on scene when I tried to loop, so I had to introduce two scenes. \$\endgroup\$
    – Charlie
    Jul 31 '19 at 14:50
  • \$\begingroup\$ @Charlie I'm also using two scenes. I'm about to integrate a -3 byte improvement from Jo King that removes the scene, though. \$\endgroup\$
    – NieDzejkob
    Jul 31 '19 at 15:12
  • \$\begingroup\$ You don't need the first explicit scene transition, and I'm not sure what the conditional is about, since you terminate with an error anyway? You only do if so for the first output, but not the second, nor the scene transition \$\endgroup\$
    – Jo King
    Jul 31 '19 at 22:09
1
2
3 4 5
7

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.