Just Twice Is Nice












3














Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:



0 * s = ""
n * s = s ++ ((n - 1) * s)


Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.



This is code-golf so your answers will be scored in bytes with fewer bytes being better.





Related, Related.










share|improve this question


















  • 4




    All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
    – Shaggy
    4 hours ago
















3














Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:



0 * s = ""
n * s = s ++ ((n - 1) * s)


Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.



This is code-golf so your answers will be scored in bytes with fewer bytes being better.





Related, Related.










share|improve this question


















  • 4




    All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
    – Shaggy
    4 hours ago














3












3








3







Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:



0 * s = ""
n * s = s ++ ((n - 1) * s)


Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.



This is code-golf so your answers will be scored in bytes with fewer bytes being better.





Related, Related.










share|improve this question













Let's have string multiplication to take a string and a positive number and concatenate that string that many times. In Haskell:



0 * s = ""
n * s = s ++ ((n - 1) * s)


Your task is to write a program that outputs a number $n > 0$. When you double your program (with the described procedure) the new program should output $2n$. When your program is tripled or quadrupled it should once again output the original $n$.



This is code-golf so your answers will be scored in bytes with fewer bytes being better.





Related, Related.







code-golf source-layout






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 6 hours ago









Post Left Garf Hunter

33.9k10156365




33.9k10156365








  • 4




    All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
    – Shaggy
    4 hours ago














  • 4




    All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
    – Shaggy
    4 hours ago








4




4




All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago




All the solutions so far are trivial modifications of solutions to existing challenges so I wouldn't be surprised to see this dupe-hammered by someone.
– Shaggy
4 hours ago










5 Answers
5






active

oldest

votes


















2















R, 27 25 bytes





1+!1-length(readLines())



Try it online!



Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.



Doubled | Tripled | Quadrupled



Why this works:



readLines() will actually reads the source file itself rather than stdin. Hence, adding lines just increments the length() of the vector returned by readLines(). Therefore, we compute !(1-length()) to obtain 1 whenever length()==1 and 0 when length()!=1, adding one to have the desired effect.






share|improve this answer































    1















    MATL, 9 bytes



    vxHQXH4=Q


    Uses n = 1.



    Try it online! Original, doubled, tripled, quadrupled.



    Explanation



    This uses clipboard H to store state information. Function H pastes the clipboard contents onto the stack. Function XH copies the top of the stack into the clipboard. The clipboard initially contains the number 2.



    Each time the snippet vxHQXH4=Q is run it does the following.
    The stack contents, if any, are deleted (vx). The clipboard contents are pushed (H) and incremented (Q), and the result is copied back into the clipboard (XH). This gives 4 the second time, and only that time.



    The number in the stack is tested for equality with 4 (4=) and incremented (Q). This gives 2 for 4 (second time), and 1 otherwise (any other time).






    share|improve this answer































      0















      Charcoal, 10 bytes



      PI⊕⁼²L⊞Oυω


      Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));.






      share|improve this answer





























        0















        Python 2, 9 bytes



        Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.





        ';exit(2)


        Try it online! | Doubled | Tripled | Quadrupled



        Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2) which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.






        share|improve this answer





























          0















          Runic Enchantments, 29 bytes



          ^w '
          /1@ 3
          / ~!4
          2'51w
          /yyy


          Try it online!



          Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.



          Twice



          Thrice



          And frice for good measure.






          share|improve this answer























            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
            });
            });
            }, "mathjax-editing");

            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "200"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f177881%2fjust-twice-is-nice%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            5 Answers
            5






            active

            oldest

            votes








            5 Answers
            5






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2















            R, 27 25 bytes





            1+!1-length(readLines())



            Try it online!



            Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.



            Doubled | Tripled | Quadrupled



            Why this works:



            readLines() will actually reads the source file itself rather than stdin. Hence, adding lines just increments the length() of the vector returned by readLines(). Therefore, we compute !(1-length()) to obtain 1 whenever length()==1 and 0 when length()!=1, adding one to have the desired effect.






            share|improve this answer




























              2















              R, 27 25 bytes





              1+!1-length(readLines())



              Try it online!



              Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.



              Doubled | Tripled | Quadrupled



              Why this works:



              readLines() will actually reads the source file itself rather than stdin. Hence, adding lines just increments the length() of the vector returned by readLines(). Therefore, we compute !(1-length()) to obtain 1 whenever length()==1 and 0 when length()!=1, adding one to have the desired effect.






              share|improve this answer


























                2












                2








                2







                R, 27 25 bytes





                1+!1-length(readLines())



                Try it online!



                Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.



                Doubled | Tripled | Quadrupled



                Why this works:



                readLines() will actually reads the source file itself rather than stdin. Hence, adding lines just increments the length() of the vector returned by readLines(). Therefore, we compute !(1-length()) to obtain 1 whenever length()==1 and 0 when length()!=1, adding one to have the desired effect.






                share|improve this answer















                R, 27 25 bytes





                1+!1-length(readLines())



                Try it online!



                Inspired by rturnbull's answer to Third time the charm, but the simplicity of the check makes it shorter.



                Doubled | Tripled | Quadrupled



                Why this works:



                readLines() will actually reads the source file itself rather than stdin. Hence, adding lines just increments the length() of the vector returned by readLines(). Therefore, we compute !(1-length()) to obtain 1 whenever length()==1 and 0 when length()!=1, adding one to have the desired effect.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 5 hours ago

























                answered 5 hours ago









                Giuseppe

                16.5k31052




                16.5k31052























                    1















                    MATL, 9 bytes



                    vxHQXH4=Q


                    Uses n = 1.



                    Try it online! Original, doubled, tripled, quadrupled.



                    Explanation



                    This uses clipboard H to store state information. Function H pastes the clipboard contents onto the stack. Function XH copies the top of the stack into the clipboard. The clipboard initially contains the number 2.



                    Each time the snippet vxHQXH4=Q is run it does the following.
                    The stack contents, if any, are deleted (vx). The clipboard contents are pushed (H) and incremented (Q), and the result is copied back into the clipboard (XH). This gives 4 the second time, and only that time.



                    The number in the stack is tested for equality with 4 (4=) and incremented (Q). This gives 2 for 4 (second time), and 1 otherwise (any other time).






                    share|improve this answer




























                      1















                      MATL, 9 bytes



                      vxHQXH4=Q


                      Uses n = 1.



                      Try it online! Original, doubled, tripled, quadrupled.



                      Explanation



                      This uses clipboard H to store state information. Function H pastes the clipboard contents onto the stack. Function XH copies the top of the stack into the clipboard. The clipboard initially contains the number 2.



                      Each time the snippet vxHQXH4=Q is run it does the following.
                      The stack contents, if any, are deleted (vx). The clipboard contents are pushed (H) and incremented (Q), and the result is copied back into the clipboard (XH). This gives 4 the second time, and only that time.



                      The number in the stack is tested for equality with 4 (4=) and incremented (Q). This gives 2 for 4 (second time), and 1 otherwise (any other time).






                      share|improve this answer


























                        1












                        1








                        1







                        MATL, 9 bytes



                        vxHQXH4=Q


                        Uses n = 1.



                        Try it online! Original, doubled, tripled, quadrupled.



                        Explanation



                        This uses clipboard H to store state information. Function H pastes the clipboard contents onto the stack. Function XH copies the top of the stack into the clipboard. The clipboard initially contains the number 2.



                        Each time the snippet vxHQXH4=Q is run it does the following.
                        The stack contents, if any, are deleted (vx). The clipboard contents are pushed (H) and incremented (Q), and the result is copied back into the clipboard (XH). This gives 4 the second time, and only that time.



                        The number in the stack is tested for equality with 4 (4=) and incremented (Q). This gives 2 for 4 (second time), and 1 otherwise (any other time).






                        share|improve this answer















                        MATL, 9 bytes



                        vxHQXH4=Q


                        Uses n = 1.



                        Try it online! Original, doubled, tripled, quadrupled.



                        Explanation



                        This uses clipboard H to store state information. Function H pastes the clipboard contents onto the stack. Function XH copies the top of the stack into the clipboard. The clipboard initially contains the number 2.



                        Each time the snippet vxHQXH4=Q is run it does the following.
                        The stack contents, if any, are deleted (vx). The clipboard contents are pushed (H) and incremented (Q), and the result is copied back into the clipboard (XH). This gives 4 the second time, and only that time.



                        The number in the stack is tested for equality with 4 (4=) and incremented (Q). This gives 2 for 4 (second time), and 1 otherwise (any other time).







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 3 hours ago

























                        answered 4 hours ago









                        Luis Mendo

                        73.9k886291




                        73.9k886291























                            0















                            Charcoal, 10 bytes



                            PI⊕⁼²L⊞Oυω


                            Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));.






                            share|improve this answer


























                              0















                              Charcoal, 10 bytes



                              PI⊕⁼²L⊞Oυω


                              Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));.






                              share|improve this answer
























                                0












                                0








                                0







                                Charcoal, 10 bytes



                                PI⊕⁼²L⊞Oυω


                                Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));.






                                share|improve this answer













                                Charcoal, 10 bytes



                                PI⊕⁼²L⊞Oυω


                                Try it online! Based on my answer to I double the source, you double the output! but compares the length to 2. Try it doubled. Try it tripled. Try it quadrupled. In verbose syntax this is Multiprint(Cast(Incremented(Equals(2, Length(PushOperator(u, w)))))));.







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 5 hours ago









                                Neil

                                79k744175




                                79k744175























                                    0















                                    Python 2, 9 bytes



                                    Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.





                                    ';exit(2)


                                    Try it online! | Doubled | Tripled | Quadrupled



                                    Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2) which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.






                                    share|improve this answer


























                                      0















                                      Python 2, 9 bytes



                                      Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.





                                      ';exit(2)


                                      Try it online! | Doubled | Tripled | Quadrupled



                                      Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2) which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.






                                      share|improve this answer
























                                        0












                                        0








                                        0







                                        Python 2, 9 bytes



                                        Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.





                                        ';exit(2)


                                        Try it online! | Doubled | Tripled | Quadrupled



                                        Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2) which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.






                                        share|improve this answer













                                        Python 2, 9 bytes



                                        Outputs via exit code. Full credit goes to Anders Kaseorg for this answer to I double the source, you double the output!.





                                        ';exit(2)


                                        Try it online! | Doubled | Tripled | Quadrupled



                                        Regularly, this raises a Syntax Error because the string is not closed properly and exists with exit code 1, then, when doubled, it becomes ';exit(2)';exit(2) which simply exits with code 2 because the string literal is now quoted properly and has no effect at all, and when repeated any other arbitrary number of times, it raises Syntax Errors.







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 5 hours ago









                                        Mr. Xcoder

                                        31.4k759198




                                        31.4k759198























                                            0















                                            Runic Enchantments, 29 bytes



                                            ^w '
                                            /1@ 3
                                            / ~!4
                                            2'51w
                                            /yyy


                                            Try it online!



                                            Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.



                                            Twice



                                            Thrice



                                            And frice for good measure.






                                            share|improve this answer




























                                              0















                                              Runic Enchantments, 29 bytes



                                              ^w '
                                              /1@ 3
                                              / ~!4
                                              2'51w
                                              /yyy


                                              Try it online!



                                              Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.



                                              Twice



                                              Thrice



                                              And frice for good measure.






                                              share|improve this answer


























                                                0












                                                0








                                                0







                                                Runic Enchantments, 29 bytes



                                                ^w '
                                                /1@ 3
                                                / ~!4
                                                2'51w
                                                /yyy


                                                Try it online!



                                                Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.



                                                Twice



                                                Thrice



                                                And frice for good measure.






                                                share|improve this answer















                                                Runic Enchantments, 29 bytes



                                                ^w '
                                                /1@ 3
                                                / ~!4
                                                2'51w
                                                /yyy


                                                Try it online!



                                                Slight alteration from the Third Times A Charm entry, using Jo King's compressed version and swapping the two reflection locations.



                                                Twice



                                                Thrice



                                                And frice for good measure.







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 2 hours ago

























                                                answered 5 hours ago









                                                Draco18s

                                                1,226618




                                                1,226618






























                                                    draft saved

                                                    draft discarded




















































                                                    If this is an answer to a challenge…




                                                    • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                    • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                      Explanations of your answer make it more interesting to read and are very much encouraged.


                                                    • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.



                                                    More generally…




                                                    • …Please make sure to answer the question and provide sufficient detail.


                                                    • …Avoid asking for help, clarification or responding to other answers (use comments instead).






                                                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                                                    Please pay close attention to the following guidance:


                                                    • Please be sure to answer the question. Provide details and share your research!

                                                    But avoid



                                                    • Asking for help, clarification, or responding to other answers.

                                                    • Making statements based on opinion; back them up with references or personal experience.


                                                    To learn more, see our tips on writing great answers.




                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function () {
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f177881%2fjust-twice-is-nice%23new-answer', 'question_page');
                                                    }
                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    Accessing regular linux commands in Huawei's Dopra Linux

                                                    Can't connect RFCOMM socket: Host is down

                                                    Kernel panic - not syncing: Fatal Exception in Interrupt